Matplotlib:如何调整分类坐标轴刻度位置以匹配实际测量间隔
分类坐标轴刻度间距匹配实际时间间隔的解决方案
核心思路是将分类格式的时间标签转换为数值型的真实时间坐标,绘制时使用数值坐标定位,再将刻度标签替换为原分类名称即可。
完整实现代码
import pandas as pd import matplotlib.pyplot as plt # 构建示例DataFrame df = pd.DataFrame(data=[[5, 4, 4, 3], [6, 4, 2, 3], [4, 4, 2, 1], [5, 4, 5, 2]], columns=['week1', 'week2', 'week3', 'week6'], index=['s1', 's2', 's3', 's4']) # 从列名提取数值型周数作为x轴坐标 x_coords = [int(col.replace('week', '')) for col in df.columns] # 绘图时指定x轴坐标 plt.plot(x_coords, df.transpose()) # 设置刻度标签为原分类名称,保留原有展示习惯 plt.xticks(x_coords, df.columns) # 可选:添加受试者图例 plt.legend(df.index, title='受试者') plt.show()
效果说明
调整后x轴的刻度位置完全匹配实际周数:week1、week2、week3、week6分别对应x轴位置1、2、3、6,week3与week6的间距自动变为前两个相邻周期间距的3倍,真实反映了测量时间间隔,折线的斜率也能准确体现数值的变化速率。
内容的提问来源于stack exchange,提问作者BulkySplash
相关产品推荐
相关产品推荐

