6

実際の矢印のサイズに関係なく、すべての矢印が同じサイズになるように、matplotlibを使用して矢印をプロットしたいと思います。

例:

  • 現在の矢じり:
    1
  • 希望する鏃:
    2

矢印は以下を使用して描画されmatplotlib.pyplot.Arrow()ます:

# p is the point of origin, pdiff the direction        
arr = plt.Arrow(p[0], p[1], pdiff[0], pdiff[1], fc=color, width=0.4)
plt.gca().add_patch(arr)
4

1 に答える 1

8

あなたは後pylab.arrow(またはFancyArrow)です、そしてあなたは指定することができますhead_width、そしてhead_lengthそれでそれらは矢印のサイズに相対的ではありません。次に例を示します。

import math
import pylab

pylab.plot(range(11), range(11))

opt = {'head_width': 0.4, 'head_length': 0.4, 'width': 0.2,
        'length_includes_head': True}
for i in xrange(1, 360, 20):
    x = math.radians(i)*math.cos(math.radians(i))
    y = math.radians(i)*math.sin(math.radians(i))

    # Here is your method.    
    arr = pylab.Arrow(4, 6, x, y, fc='r', alpha=0.3)
    pylab.gca().add_patch(arr)

    # Here is the proposed method.
    pylab.arrow(4, 6, x, y, alpha=0.8, **opt)

pylab.show()

生成するもの:

ここに画像の説明を入力してください

于 2012-12-18T21:29:50.657 に答える