我试图用matplotlib将一个箭头绘制到日志图中,如下所示:

我知道有人建议关闭轴(Matplotlib: Draw a vertical arrow in a log-log plot),但我确实需要轴。此外,这项建议似乎没有改变任何情况(除了如预期那样关掉斧头外):
plt.figure();plt.loglog([1,10,60],[1,0.1,0.005])
plt.axis('off')
plt.arrow(2,0.002,5,0.098,'k',head_length=0.3)到目前为止,我的工作是创建一个带有线性轴环境的不可见嵌入(意为:轴关闭),并在嵌入中绘制箭头,这是工作的,但确实有点不愉快。有更简单的方法吗?或者人们建议添加这些类型的附加功能。inkscape,主情节完成后?
发布于 2017-09-10 11:21:23
您可以使用plt.annotate而不是plt.arrow。这一点在plt.arrow中有说明。
所产生的箭头受轴长比和限制的影响。这可能会产生一个箭头,它的头与它的茎不成正方形。若要创建头部与其阀杆成方的箭头,请使用
annotate()
例如:
import matplotlib.pyplot as plt
plt.figure()
plt.loglog([1,10,60],[1,0.1,0.005])
plt.annotate('', xy=(5, 0.098), xytext=(2, 0.002),
arrowprops=dict(facecolor='black', shrink=0.),
)
plt.ylim(0.001, 10)
plt.show()

请注意,您可能需要调整轴的限制,以使箭头适合绘图。在这里,我不得不改变ylim。
https://stackoverflow.com/questions/46139945
复制相似问题