2016-10-11 39 views
2

我有一個簡單的線條陰謀。目前,我設置yticks爲隱形。 enter image description here如何在plot/graph上顯示yticks(不在y軸上)。在點附近顯示yticks

這裏是圖形代碼:

import matplotlib.pyplot as plt 
x = [1, 2, 3, 4, 5] 
y = [1, 1.5, 2, 2.5, 3] 

fig, ax = plt.subplots(figsize=(15,10)) 
plt.plot(x, y, 'ko-') 

plt.xlabel('X', fontsize=15) 
plt.ylabel('Y', fontsize=15) 
plt.xticks(x, fontsize=13) 
plt.yticks(y, visible=False) 

plt.margins(0.1, 0.1) 
plt.title('Graph', color='black', fontsize=17) 
ax.axis('scaled') 
ax.grid() 
plt.show() 

我需要顯示/打印yticks正確的圖形本身(而不是左側)。所以,yticks與數據點一起。

所需的輸出: enter image description here


如何與Matplotlib辦呢?

回答

2

您可以使用plt.text()將文本註釋到軸上。通過迭代你的x,y點,你可以在每個標記處放置一個標籤。例如:

import matplotlib.pyplot as plt 
x = [1, 2, 3, 4, 5] 
y = [1, 1.5, 2, 2.5, 3] 

fig, ax = plt.subplots(figsize=(15,10)) 
plt.plot(x, y, 'ko-') 

plt.xlabel('X', fontsize=15) 
plt.ylabel('Y', fontsize=15) 
plt.xticks(x, fontsize=13) 
plt.yticks(y, visible=False) 

offset = 0.05 
for xp, yp in zip(x,y): 
    label = "%s" % yp 
    plt.text(xp-offset, yp+offset, label, fontsize=12, horizontalalignment='right') 

plt.margins(0.1, 0.1) 
plt.title('Graph', color='black', fontsize=17) 
ax.axis('scaled') 
ax.grid() 
plt.show() 

提供了以下數字:

enter image description here