我想为一个简单的等式绘制方向场:
y' = 3 − 2y
我发现了类似的Matlab问题here(1.3)。但我不知道如何将它重写为python。我的最后一次尝试是:
from matplotlib.pyplot import cm
import matplotlib.pyplot as plt
import numpy as np
nx, ny = .3, .3
x = np.arange(-3, 3, nx)
y = np.arange(-2, 2, ny)
X, Y = np.meshgrid(x, y)
dy = X + np.sin(Y)
dx = np.ones((10,10))
plot2 = plt.figure()
plt.quiver(X, Y, dx, dy,
color='Teal',
headlength=7)
plt.title('Quiver Plot, Single Colour')
plt.show(plot2)
但我收到错误:
builtins.ValueError: operands could not be broadcast together with shapes (100,) (280,)
我虽然会很简单,但经过几个小时的搜索,如何绘制一个简单的方向场,我很郁闷。
答案 0 :(得分:3)
您还可以使用字段的streamlines来给出流动的良好印象,并根据字段的某些属性(在本例中为dy)为曲线着色。请看以下示例:
nx, ny = .3, .3
x = np.arange(-3, 3, nx)
y = np.arange(-2, 2, ny)
X, Y = np.meshgrid(x, y)
dy = X + np.sin(Y)
dx = np.ones(dy.shape)
color = dy
lw = 1
plt.streamplot(X,Y,dx, dy, color=color, density=1., cmap='jet', arrowsize=1)
产生:
答案 1 :(得分:2)