3

matplotlib の図に特定の長さに注釈を付けたい。たとえば、点 A と点 B の間の距離。

このために、注釈を使用して、矢印の開始位置と終了位置を指定する方法を理解できると思います。または、矢印を使用してポイントにラベルを付けます。

後者を使用しようとしましたが、2 方向の矢印を取得する方法がわかりません。

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()

両方向矢印を作成するにはどうすればよいですか? さらに良いことに、matplotlib の図に次元をマークする別の (より簡単な) 方法はありますか?

4

2 に答える 2

9

arrowstyleたとえば、プロパティを使用して矢印のスタイルを変更できます。

ax.annotate(..., arrowprops=dict(arrowstyle='<->'))

両頭矢印を与える。

完全な例は、ページの 3 分の 1 ほど下にあり、可能なさまざまなスタイルが示されています。

プロットに寸法をマークする「より良い」方法については、頭の中で考えることはできません。

編集:役立つ場合に使用できる完全な例を次に示します

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()
于 2013-02-15T10:39:01.367 に答える