You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确绘制Pandas DataFrame折线图?X轴标签错位问题排查

解决Pandas折线图X轴标签对齐问题

嘿,我一眼就看到你代码里的几个关键问题,导致X轴标签没对齐标记点还重叠在右侧,咱们一步步来修正:

问题1:错误设置了X轴刻度的位置

你写了ax.set_xticks(df.Score),这是把Y轴的Score值当成了X轴刻度的位置!正确的做法应该是用X轴对应的Split列值来设置刻度位置,这样标签才能和折线的标记点一一对应。

问题2:错误限制了X轴范围

ax.set_xlim((0, 1))把X轴的显示范围强行限制在0到1之间,但你的Split值明显有到95的(从你给的标签能看出来),这就导致所有数据点都被挤在了X轴最右侧,标签自然会重叠在一起。

修正后的完整代码

#importing pandas package
import pandas as pd
import matplotlib.pyplot as plt
import csv
import seaborn as sns

# making data frame from csv file
dataset = pd.read_csv('curve.csv.csv')
df = pd.DataFrame(dataset.sort_values('Split')[['Split', 'Score']])
df.reset_index(drop=True, inplace=True)
print(df)

ax = df.plot.line(x='Split', y='Score', color='green', marker=".")
# 去掉错误的xlim限制,或者根据实际Split范围设置,比如ax.set_xlim(df['Split'].min(), df['Split'].max())
ax.grid(True)

# 关键修正:用Split列的值设置X轴刻度位置
ax.set_xticks(df.Split)
# 确保标签数量和df的行数一致(这里你的标签有25个,要确认df刚好25行)
ax.set_xticklabels(['.005','.010','.015','.020','.040','.060','.080','1','15','20','25','30','35','40','45','50','55','60' ,'65','70','75','80','85','90','95'])

ax.grid(True, linestyle='-.')
ax.tick_params(labelcolor='r', labelsize='medium', width=3)
# 如果标签还是有点挤,可以旋转X轴标签,比如加上这句:
# plt.xticks(rotation=45)
plt.show()

额外建议

如果X轴标签太多导致还是有点拥挤,可以添加plt.xticks(rotation=45)来旋转标签,提升可读性。

内容的提问来源于stack exchange,提问作者Pelide

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:57:46