這應做到:
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
值,從而對哪個繪圖開始的值進行變化。對於你的評論中的例子,這將是:
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()
這正是我想要的,謝謝! –
嗨對不起,但我有一個後續問題出現了,我不確定如何解決它。基本上我想添加另一條線到同一個地塊,但我希望它在x = 2開始。但是如果我有y1 = [2,3,4,5,6]並添加ax.plot(y1)它會在x = 1處開始這一行。我也嘗試了ax.plot(x1,y1),其中x1 = [2,3,10,11,12]但是這會導致添加新行的原始問題。任何幫助將不勝感激,謝謝! –
@MoustafaNassar查看我對答案的編輯。 –