Matplotlib xticks聚集于坐标轴一端问题排查求助
Matplotlib xticks 聚集在轴末端的问题排查与解决
当前绘图的x轴刻度全部聚集在轴末端,无法实现预期的均匀分布效果。相关代码片段如下:
plt.figure() plt.plot(df_20796674_sum2['TIMESTAMP'], df_20796674_sum2['Pressure'], label ='Pressure') plt.plot(df_20796674_sum2['TIMESTAMP'], df_20796674_sum2['Time-series'], label = ' Model') plt.xticks(x[::1500]) plt.legend()
问题根源
你设置刻度时用了数组x[::1500],但绘图的x轴数据是df_20796674_sum2['TIMESTAMP'],两者不是同一数据源,导致刻度位置与实际绘图数据不匹配,最终全部挤在轴的末端。
修正方案
- 方案1:对齐数据源,用TIMESTAMP列选择刻度
将plt.xticks(x[::1500])替换为:
如果TIMESTAMP是时间类型,建议添加旋转参数避免刻度重叠:plt.xticks(df_20796674_sum2['TIMESTAMP'][::1500])plt.xticks(df_20796674_sum2['TIMESTAMP'][::1500], rotation=45) - 方案2:让Matplotlib自动生成均匀刻度
不用手动指定步长,直接调用自动刻度定位器:plt.gca().xaxis.set_major_locator(plt.MaxNLocator(10)) # 可根据需求调整数字10控制刻度数量
内容的提问来源于stack exchange,提问作者Tobias Bowley
相关产品推荐
相关产品推荐

