使用matshow()比使用imshow()更好的动画质量.怎么改进呢?

Loï*_*cin 5 python arrays matplotlib imshow

我用matshow显示了一个数组,它工作正常,但现在我想尝试imshow.问题是,与matshow相比,imshow的质量确实很差.

我怎样才能解决这个问题 ?

Matshow:

matshow(array)
Run Code Online (Sandbox Code Playgroud)

图.1

Imshow:

plt.imshow(array)
Run Code Online (Sandbox Code Playgroud)

图2

Imp*_*est 15

问题是由于插值.

Matplotlib matshow是一个包装器imshow,因为它"将原点设置为'上','插值'设置为'最接近'和'方面'相等."

因此,虽然matshow总是使用interpolation="nearest",imshow默认情况下interpolation=None.请注意,这与...不同interpolation="none".

  • interpolation=None使用matplotlib rc文件中image.interpolation变量的插值集(在不同的matplotlib版本中可以有所不同.)
  • interpolation="none" 不使用插值,与...相同 "nearest"

解决此问题的最安全方法是在两个调用中专门设置插值方法

plt.matshow(array, interpolation="none")
plt.imshow(array, interpolation="none")
Run Code Online (Sandbox Code Playgroud)

  • @MateenUlhaq 是的,“对于 Agg、ps 和 pdf 后端,当缩小大图像时,插值 = 'none' 效果很好,而当放大小图像时,插值 = 'nearest' 效果很好”,来自 https:// matplotlib.org/gallery/images_contours_and_fields/interpolation_methods.html。对于其他后端,它们似乎是相同的(“none”将回退到“nearest”)。 (2认同)