Python pandas绘制折线图如何设置x轴显示全部年份刻度
pandas折线图x轴全量显示所有年份的解决方案
原因说明
pandas的plot方法默认基于matplotlib实现,matplotlib会自动根据x轴数据量级计算可读性最高的刻度间隔,因此默认会按5年跨度展示年份刻度,不会自动输出全部年份。
完整实现代码
import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('gdp.csv', encoding='unicode_escape', index_col=0) # 按年份正序排序(适配示例数据中从新到旧存储的顺序,不需要倒序可注释该行) df = df.sort_index() # 将年份索引转为整数类型,避免被识别为时间序列自动调整刻度规则 df.index = df.index.astype(int) # 绘制折线图并获取坐标轴对象 ax = df.plot() # 强制设置x轴刻度为数据集中包含的全部年份 ax.set_xticks(df.index) # 旋转x轴标签45度,避免文字重叠 plt.xticks(rotation=45) # 自动调整画布布局,防止标签被画布边缘截断 plt.tight_layout() plt.show()
显示优化
如果数据年份跨度较大,全量显示刻度后文字过于拥挤,可以调整刻度字体大小适配,替换plt.xticks代码为:
plt.xticks(rotation=45, fontsize=8)
根据实际显示效果调整fontsize参数的数值即可。
内容的提问来源于stack exchange,提问作者namkellbi
相关产品推荐
相关产品推荐

