应该这样做:
from matplotlib import pyplot as plt
fig,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()
我添加了标记以更好地可视化数据点。结果如下所示:
编辑:
如果想可视化轴不连续,可以在this answer寻求帮助。
EDIT2:
在我的示例中,我只将y 值传递给plot 函数,这意味着x 值被隐式计算为[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()