2015-07-01 126 views
1

我想在對數座標圖中繪製具有不同長度的箭頭,但應該有一個類似的頭部。頭寬實際上是相同的,但頭的長度似乎與箭頭長度成比例。我怎樣才能讓右手箭頭的短頭看起來像另一頭?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

回答

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