Matplotlib 在图形上保留数据点注释
我有一个pyplot图,其中每个数据点都有一个指向该数据点的箭头标记,并且我对其进行了格式化,以使数据与它所注释的数据点保持恒定的偏移。这很好,直到我用一个数据点太接近图的边缘,注释被切掉。我希望有一种方法可以格式化我的注释,这样它就可以自动地将自己从我的数据中定位出来,并保留在我的图中Matplotlib 在图形上保留数据点注释,matplotlib,python-2.7,Matplotlib,Python 2.7,我有一个pyplot图,其中每个数据点都有一个指向该数据点的箭头标记,并且我对其进行了格式化,以使数据与它所注释的数据点保持恒定的偏移。这很好,直到我用一个数据点太接近图的边缘,注释被切掉。我希望有一种方法可以格式化我的注释,这样它就可以自动地将自己从我的数据中定位出来,并保留在我的图中 for label, x, y in zip(bagOlabels, time, height): ax.annotate( label,
for label, x, y in zip(bagOlabels, time, height):
ax.annotate(
label,
xy = (x,y), xytext = (50,-20),
textcoords = 'offset points', ha = 'right', va = 'top',
arrowprops = dict(arrowstyle = '->',
connectionstyle = 'arc3,rad=0')
)
xytext=(50,-20)
是我设置标签偏移量的地方。我一直在挖,但我还没有找到我要找的东西。如果你对如何实现这一目标有任何见解,我很乐意听到
谢谢。您可以尝试以下策略:
for label, x, y in zip(bagOlabels, time, height):
offset = (50, 20)
if x > mid_x:
offset = (-50, 20) # (-50, -20) could be better
ax.annotate(...)
get_xlim
返回绘图在x轴上的限制:
x = range(0, 100)
y = map(lambda x: x*x, x)
fig = pyplot.figure()
ax1 = fig.add_subplot(1, 1, 1)
ax1.plot(x, y, 'r.', x, y, 'r-')
xlim = ax1.get_xlim()
注释中的条件语句可以正常工作。你知道有什么方法可以知道轴的极限(没有明确设置),这样我就可以知道什么时候触发它了吗?@deadstump刚刚更新了答案,展示了如何获取图形的
xlim
。