【发布时间】:2014-05-25 23:36:02
【问题描述】:
我正在使用 matplotlib 绘制一些我希望用箭头(距离标记)注释的数据。这些箭头应偏移几个点,以免与绘制的数据重叠:
import matplotlib.pyplot as plt
import matplotlib.transforms as transforms
fig, ax = plt.subplots()
x = [0, 1]
y = [0, 0]
# Plot horizontal line
ax.plot(x, y)
dy = 5/72
offset = transforms.ScaledTranslation(0, dy, ax.get_figure().dpi_scale_trans)
verttrans = ax.transData+offset
# Plot horizontal line 5 points above (works!)
ax.plot(x, y, transform = verttrans)
# Draw arrow 5 points above line (doesn't work--not vertically translated)
ax.annotate("", (0,0), (1,0),
size = 10,
transform=verttrans,
arrowprops = dict(arrowstyle = '<|-|>'))
plt.show()
有什么方法可以让ax.annotate() 绘制的线偏移X个点?我希望使用绝对坐标(例如点或英寸)而不是数据坐标,因为轴限制很容易发生变化。
谢谢!
【问题讨论】:
标签: python matplotlib