Matplotlib折线图X轴刻度与数据点偏移1位问题求助
解决Matplotlib折线图X轴刻度与数据点偏移问题
问题根源在于plt.plot(list)默认使用0起始的索引作为数据点的X坐标(即0到9),而你想让第一个数据点对应刻度1,之前的plt.xticks(np.arange(1, len(list)+1))仅设置了刻度的位置为1到10,但数据点的X坐标仍为0到9,导致偏移。
以下两种方案可解决对齐问题:
方案一:指定数据点的X坐标从1开始
直接给plt.plot()传入从1开始的X序列,让数据点的X坐标与期望刻度一一对应:
import matplotlib.pyplot as plt import numpy as np data_list = [0.38, 0.60, 0.65, 0.67, 0.71, 0.66, 0.65, 0.47, 0.71, 0.60] # 生成1到10的X序列 x = np.arange(1, len(data_list)+1) plt.plot(x, data_list) plt.show()
方案二:修改刻度标签与原有X位置的对应关系
保留默认的0起始X坐标,将这些位置的刻度标签替换为1到10:
import matplotlib.pyplot as plt import numpy as np data_list = [0.38, 0.60, 0.65, 0.67, 0.71, 0.66, 0.65, 0.47, 0.71, 0.60] plt.plot(data_list) # ticks参数指定刻度位置(原0-9),labels参数设置对应显示的刻度文本(1-10) plt.xticks(ticks=np.arange(len(data_list)), labels=np.arange(1, len(data_list)+1)) plt.show()
内容的提问来源于stack exchange,提问作者Wildo_Baggins311
相关产品推荐
相关产品推荐

