Pho*_*ght 3 python matlab numpy matplotlib scipy
我想绘制一个简单方程的方向场:
\n\ny\' = 3 \xe2\x88\x92 2y\n
Run Code Online (Sandbox Code Playgroud)\n\n我在这里发现了类似的Matlab问题(1.3)。但我不知道如何将其重写为python。我最后的尝试是:
\n\nfrom matplotlib.pyplot import cm\nimport matplotlib.pyplot as plt\nimport numpy as np\n\nnx, ny = .3, .3\nx = np.arange(-3, 3, nx)\ny = np.arange(-2, 2, ny)\nX, Y = np.meshgrid(x, y)\n\ndy = X + np.sin(Y)\ndx = np.ones((10,10))\n\nplot2 = plt.figure()\nplt.quiver(X, Y, dx, dy, \n color=\'Teal\', \n headlength=7)\n\nplt.title(\'Quiver Plot, Single Colour\')\nplt.show(plot2)\n
Run Code Online (Sandbox Code Playgroud)\n\n但我收到错误:
\n\nbuiltins.ValueError: operands could not be broadcast together with shapes (100,) (280,) \n
Run Code Online (Sandbox Code Playgroud)\n\n我虽然这会很简单,但是经过几个小时的搜索如何绘制一个简单的方向场后,我感到非常沮丧。
\n您还可以使用场的流线来给出流动的良好印象,并根据场的某些属性(在本例中为 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)
Run Code Online (Sandbox Code Playgroud)
其产生:
dx
并且必须与和dy
具有相同的形状。X
Y
目前,您的形状为(14, 20)
forX
和,但for 。Y
dy
(10,10)
dx
如果将定义行更改dx
为:
dx = np.ones(dy.shape)
Run Code Online (Sandbox Code Playgroud)
一切正常:
归档时间: |
|
查看次数: |
6610 次 |
最近记录: |