在matplotlib中注释尺寸

Dha*_*ara 2 python matplotlib

我想在matplotlib图中注释某些长度.例如,A点和B点之间的距离.

为此,我想我可以使用注释并弄清楚如何提供箭头的开始和结束位置.或者,使用箭头并标记点.

我试图使用后者,但我无法弄清楚如何得到一个双头箭头:

from pylab import *

for i in [0, 1]:
    for j in [0, 1]:
        plot(i, j, 'rx')

axis([-1, 2, -1, 2]) 
arrow(0.1, 0, 0, 1, length_includes_head=True, head_width=.03) # Draws a 1-headed arrow
show()
Run Code Online (Sandbox Code Playgroud)

如何制作双头箭头?更好的是,还有另一种(更简单的)matplotlib数字标记尺寸的方法吗?

Dan*_*Dan 7

例如,您可以使用arrowstyle属性更改箭头的样式

ax.annotate(..., arrowprops=dict(arrowstyle='<->'))
Run Code Online (Sandbox Code Playgroud)

给出一个双头箭头.

这里可以找到一个完整的例子,大约在页面下方的三分之一,可能有不同的样式.

至于在地块上标记尺寸的"更好"的方法,我无法想到任何偏离我的头脑.

编辑:这是一个完整的例子,如果它有用,你可以使用

import matplotlib.pyplot as plt
import numpy as np

def annotate_dim(ax,xyfrom,xyto,text=None):

    if text is None:
        text = str(np.sqrt( (xyfrom[0]-xyto[0])**2 + (xyfrom[1]-xyto[1])**2 ))

    ax.annotate("",xyfrom,xyto,arrowprops=dict(arrowstyle='<->'))
    ax.text((xyto[0]+xyfrom[0])/2,(xyto[1]+xyfrom[1])/2,text,fontsize=16)

x = np.linspace(0,2*np.pi,100)
plt.plot(x,np.sin(x))
annotate_dim(plt.gca(),[0,0],[np.pi,0],'$\pi$')

plt.show()
Run Code Online (Sandbox Code Playgroud)