我有一条简单的线图。目前,我将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与数据点并存。
所需的输出:
用Matplotlib怎么做?
最佳答案
您可以使用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()
给出下图:
关于python - 如何在绘图/图形上显示yticks(不在y轴上)。在点附近显示yticks,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39971625/