应该这样做:
from matplotlib import pyplot as pltfig,ax = plt.subplots()x = [1,2,3,10,11]y = [1,2,3,4,5]ax.plot(y,marker='o')ax.set_xticks([i for i in range(len(y))])ax.set_xticklabels(x)plt.show()
我添加了标记以更好地可视化数据点。结果看起来像这样:
编辑 :
如果您想直观地看到轴不连续,则可以在此答案中找到帮助。
编辑2 :
在我的示例中,我仅将
y-values传递给
plot函数,这意味着
x-values被隐式计算为[1,2,3,4,5]。当然,您也可以
x显式地传递每个绘图命令的-
values,从而改变
x哪个绘图开始于哪个-value。对于您评论中的示例,这将是:
fig,ax = plt.subplots()y1 = [1,2,3,4,5]x1 = [i for i in range(len(y1))]y2 = [2,3,4,5,6]x2 = [i+1 for i in range(len(y2))]xticks = list(set(x1+x2)) #or more explicit: [i for i in range(6)]xtick_labels = [1,2,3,10,11,12]ax.plot(x1,y1,marker='o')ax.plot(x2,y2,marker='x')ax.set_xticks(xticks)ax.set_xticklabels(xtick_labels)plt.show()



