我正在尝试使用matplotlib在日志记录图中绘制箭头,如下所示:
我知道有人建议关闭轴(Matplotlib:在对数对数图中绘制垂直箭头),但是我确实需要轴。另外,该建议似乎没有任何改变(除了按预期关闭轴以外):
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)
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的工作一直是用线性轴环境创建一个不可见的插图(意思是:轴已关闭),并在插图中绘制箭头,这种方法虽然有效,但确实有点令人不愉快。有没有更简单的方法?还是有人建议通过例如添加这些类型的附加功能。在主图绘制完成后,inkscape?
您可以使用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()
Run Code Online (Sandbox Code Playgroud)
请注意,您可能需要调整轴限制以使箭头适合绘图。在这里我不得不改变ylim。