Matplotlib箭头在对数日志图中

时间:2015-07-01 21:43:17

标签: python matplotlib

我想在对数日志中绘制箭头,这些箭头具有不同的长度但应该具有相似的头部。头部宽度确实相同,但头部的长度似乎与箭头长度成比例。如何让右箭头的短头看起来像另一个头?

from matplotlib.pyplot import gca,show

ax  = gca()
ax.set_xlim(1e-4,1e4)
ax.set_xscale('log')
ax.set_ylim(1e-4,1e4)
ax.set_yscale('log')

opt = dict(color='r',width=5)

a1  = gca().annotate('',xy=(1e-1,1e-3),xycoords='data',xytext =(1e-1,1e1),textcoords = 'data',arrowprops=opt)
a2  = gca().annotate('',xy=(1e2,1e-3), xycoords='data',xytext =(1e1,1e-3),textcoords = 'data',arrowprops=opt)

show()

Result

1 个答案:

答案 0 :(得分:2)

您可以像arrowprops这样调整头部和连接方式(对于完整的选项see the matplotlib docs

 opt = dict(color='r', 
            arrowstyle = 'simple,head_width=.75,head_length=.75',
            connectionstyle = 'arc3,rad=0')

然后要调整箭头的宽度,请使用size中的annotate参数:

a1  = gca().annotate('',xy=(1e-1,1e-3),xycoords='data',xytext =(1e-1,1e1),textcoords = 'data',arrowprops=opt,size=20)
a2  = gca().annotate('',xy=(1e2,1e-3), xycoords='data',xytext =(1e1,1e-3),textcoords = 'data',arrowprops=opt,size=20)
show()

enter image description here