如果你想使用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)
和textcoords
沿着使用,你使用这些30,0值来定位数据标签点,所以它位于y=0
和x=30
上的小区域。
您需要绘制i
和j
的两条线,否则您只能绘制x
或y
数据标签。
你可以得到这样的东西(只注意标签):
这并不理想,仍然有一些重叠。
3条答案
按热度按时间deyfvvtc1#
如何打印
(x, y)
一次。9lowa7mx2#
我遇到了类似的问题,最后得到了这样的结果:
对我来说,这样做的好处是数据和注解不重叠。
在
.annotate
中使用文本参数最终会导致不合适的文本位置。在图例和数据点之间画线是一团乱麻,因为图例的位置很难确定。ibps3vxo3#
如果不需要箭头,
text()
也可以用来标记点。也可以通过有条件地注解点来注解某些点或更改标签相对于点的位置。此外,您还可以指定任意标签。
例如,下面的代码在
x>0
时在点的左侧绘制标签,否则在右侧绘制标签。此外,annotate()
允许额外的kwargs,可用于 * 美化 * 标签。