【问题标题】:Animation quality is better with matshow() than with imshow(). How to improve it?matshow() 的动画质量比 imshow() 好。如何改进它?
【发布时间】:2017-06-14 02:01:54
【问题描述】:

我用 matshow 显示了一个数组,它工作正常,但现在我想试试 imshow。问题是imshow的质量真的比matshow差。

我该如何解决这个问题?

马术表演:

matshow(array)

Imshow:

plt.imshow(array)

【问题讨论】:

    标签: python arrays matplotlib imshow


    【解决方案1】:

    问题是由interpolation 引起的。

    Matplotlib matshowimshow 的包装器,因为它“将原点设置为‘上’,‘插值’设置为‘最近’,‘方面’设置为相等。” p>

    因此,虽然 matshow 始终使用 interpolation="nearest",但 imshow 默认使用 interpolation=None。请注意,这与interpolation="none" 不同。

    • interpolation=None 使用来自matplotlib rc fileimage.interpolation 变量中的插值集(在不同的matplotlib 版本中可能不同。)
    • interpolation="none" 不使用插值,与 "nearest" 相同

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

    plt.matshow(array, interpolation="none")
    plt.imshow(array, interpolation="none")
    

    【讨论】:

    • "none""nearest"有区别吗?
    • @MateenUlhaq 是的,“对于 Agg、ps 和 pdf 后端,插值 = 'none' 在缩小大图像时效果很好,而插值 = 'nearest' 在缩小小图像时效果很好放大”来自matplotlib.org/gallery/images_contours_and_fields/…。对于其他后端,它们似乎是相同的(“none”将退回到“nearest”)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    相关资源
    最近更新 更多