2016-10-11 74 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