11

ベクトル場をプロットするために、matplotlib の quiver を使用しています。ベクトル場の特定の矢印を生成したデータの数に応じて、各矢印の太さのサイズを変更したいと思います。したがって、私が探しているのは、矢印サイズの一般的なスケール変換ではなく、矢印の太さを 1 つずつカスタマイズする方法です。出来ますか?手伝って頂けますか?

4

2 に答える 2

13

矢印の太さlinewidthsを制御するパラメータ。plt.quiver値の 1 次元配列を渡すと、各矢印の太さが異なります。

例えば、

widths = np.linspace(0, 2, X.size)
plt.quiver(X, Y, cos(deg), sin(deg), linewidths=widths)

0 から 2 まで増加する線幅を作成します。


import matplotlib.pyplot as plt
import numpy as np
sin = np.sin
cos = np.cos

# http://stackoverflow.com/questions/6370742/#6372413
xmax = 4.0
xmin = -xmax
D = 20
ymax = 4.0
ymin = -ymax
x = np.linspace(xmin, xmax, D)
y = np.linspace(ymin, ymax, D)
X, Y = np.meshgrid(x, y)
# plots the vector field for Y'=Y**3-3*Y-X
deg = np.arctan(Y ** 3 - 3 * Y - X)
widths = np.linspace(0, 2, X.size)
plt.quiver(X, Y, cos(deg), sin(deg), linewidths=widths)
plt.show()

収量

ここに画像の説明を入力

于 2013-03-29T11:20:53.820 に答える