登录论坛

查看完整版本 : Python渐变颤振和轮廓不复制MATLAB版本


poster
2019-12-06, 20:20
我已经完成了将随机行走模拟从Matlab转换为Python的任务,其中的关键输出是行走单元格访问的轮廓和梯度颤动图组合。

我有一个45x175的矩形作为域,在该矩形中已切出两个矩形区域并使其能够反映出步行。生成的轮廓看起来像“ T”形。

我在Python代码中遇到的问题是:1)我只想在轮廓线内部而不是外部绘制渐变;和2)我希望箭头看起来像Matlab箭头一样接近(如果不完全一样)。

我已经使用了以下函数(从本文中 (https://stackoverflow.com/questions/54471306/gradients-and-quiver-plots)借来了)来获取我的Python图:

field = np.array([ppx, ppy]) def plot_elines(x_grid, y_grid, potential, field): fig, ax = plt.subplots(figsize=(50, 50)) im_cs = ax.contour(x_grid, y_grid, potential, 18, cmap='inferno') plt.clabel(im_cs, inline=1, fontsize=7) ax.quiver(x_grid, y_grid, field[1, :], field[0, :]) ax.set_xlabel("$x$") ax.set_ylabel("$y$") ax.set_aspect("equal") plt.show() 在Matlab中,我的代码如下:

contour(potential) hold on quiver(ppx, ppy) hold off 结果如下(抱歉,信誉不佳,无法发布图片):


Python和Matplotlib版本 (https://i.stack.imgur.com/opuyh.png)
Matlab版本 (https://i.stack.imgur.com/QnrQO.png)
我一直在进行大量的测试和文档阅读,但是我是Python的新手,所以我并不真正理解为什么这些结果如此不同。我使用的potential , ppx和ppy数据完全相同。我会发布数据,但是由于数组的大小,它会非常混乱。让我知道是否有更好的方法。

如何使Python绘图看起来像Matlab绘图一样(通常可以正常工作 )?



更多&回答... (https://stackoverflow.com/q/59212926)