【发布时间】:2014-03-08 16:41:19
【问题描述】:
我搜索了年龄(小时,就像年龄一样)来找到一个非常烦人(看似基本的)问题的答案,并且因为我找不到一个完全符合答案的问题,所以我发布了一个问题并在希望它可以节省其他人我刚刚花在我的新手绘图技能上的大量时间。
如果你想使用 python matplotlib 标记你的绘图点
from matplotlib import pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
A = anyarray
B = anyotherarray
plt.plot(A,B)
for i,j in zip(A,B):
ax.annotate('%s)' %j, xy=(i,j), xytext=(30,0), textcoords='offset points')
ax.annotate('(%s,' %i, xy=(i,j))
plt.grid()
plt.show()
我知道 xytext=(30,0) 与文本坐标一起使用,您使用这 30,0 值来定位数据标签点,因此它位于 0 y 轴上,30 位于 x 轴上小面积。
你需要绘制 i 和 j 的线,否则你只绘制 x 或 y 数据标签。
你会得到这样的东西(只注意标签):
它并不理想,仍有一些重叠 - 但总比没有好,这就是我所拥有的......
【问题讨论】:
-
为什么不直接做
ax.annotate('(%s, %s)' % (i, j), ...)? (或者,如果您使用的是较新的字符串格式,'({}, {})'.format(i, j)。) -
pyplot.text 似乎是注释的替代品:pythonmembers.club/2018/05/08/… 不确定它是否有任何不同
-
pythonmembers.club 的维护者在这里。 XD 这就是我作为初学者的原因。那篇文章后来变得足够受欢迎,被纳入斯坦福大学的 NLP 课程(哇,这篇文章的粗体直接链接)
标签: python matplotlib labels annotate