2016-07-30 69 views
1

我想用plot(x,y)繪製的東西,能夠看到在圖上值的指數x在情節

例如在x刻度顯示兩者的價值和指數。

x = [10,30,100,120] 
y = [16,17,19,3] 
plot(x,y) 

將顯示

enter image description here

看劇情是很難知道在每一點上什麼是原來的指數。例如,我希望能夠知道從何時開始(100,19)它是索引2,因爲x[2]=100y[2]=19。 我該如何在matplotlib中做到這一點。 我看着twiny()函數,但似乎只是添加另一個軸,忽略x中點之間的距離。

回答

1

這裏是我的解決方案:

import matplotlib.pyplot as plt 
x = [10,30,100,120] 
y = [16,17,19,3] 
plt.plot(x,y); 
for i, (a, b) in enumerate(zip(x, y)): 
    plt.annotate(str(i), xy=(a, b), textcoords="offset points", xytext=(0, 12), 
       horizontalalignment='center', verticalalignment='center') 
plt.xlim(0, 130) 
plt.ylim(0, 22) 

做些什麼:它列舉了您的yx陣列,存儲在變量i指數和中變量xyab各自的值。然後在座標(a, b)處註釋索引i,在y軸上將文本偏移12個像素以避免覆蓋曲線的註釋。

結果:

enter image description here

+0

對於非常大的圖形,即1000點的可能緩慢運行,否則,這是好的。謝謝! – tal