我是最近从Matlab迁移到Python的人,最近与Numpy和Matplotlib合作过。我使用matplotlib对应的courtoff函数将我的一个脚本从使用Matlab的courtoff函数的Matlab重新编码到Python中。我成功地用Python复制了输出,除了courtoff图不完全相同之外,原因是我不知道的。当我在matplotlib中运行courtoff函数时,我得到了这个原本很好的图形,但是它在顶部和底部的轮廓层上有这些尖锐的边,这不应该存在(参见下面的图1,matplotlib输出)。现在,当我将我在Python中使用的数组导出到Matlab时(即,生成matplotlib contourf图所用的完全相同的数据集),并使用Matlab的contourf函数,我得到的输出略有不同,没有那些尖锐的轮廓级边(参见下面的图2,Matlab输出)。我在两个图中使用了相同数量的级别。在图3中,我对相同的数据做了一个散点图,它显示数据中没有如contourf图所示的锐利边缘(我添加了等高线只是为了参考)。示例数据集可以通过下面给出的Dropbox链接下载。数据集包含三个txt文件:X、Y、Z。每个文件都是一个500x500数组,可以直接与courtf()一起使用,即plt.courtf(X、Y、Z…)。使用的代码是
plt.contourf(X,Y,Z,10, cmap=plt.cm.jet)
plt.contour(X,Y,Z,10,colors='black', linewidths=0.5)
plt.axis('equal')
plt.axis('off')
有人知道为什么会这样吗?我很希望你能对此有所了解!
朱西
以下是我的设置的详细信息:
蟒蛇3.7.0
伊普顿6.5.0
matplotlib 2.2.3版
Matplotlib输出