如何在图/图上显示yticks(不在y轴上)。在点附近显示yticks

时间:2016-10-11 06:35:50

标签: python matplotlib linechart

我有一个简单线条的情节。目前,我将 yticks 设置为隐身。 enter image description here

以下是图表的代码:

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

1 个答案:

答案 0 :(得分: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