我正在尝试使用matplotlib在
python中绘制一个小图像,并希望显示的轴具有与它生成的numpy数组相同的形状,即数据不应重新采样.换句话说,数组中的每个条目应对应于屏幕上的像素(或其左侧).这看起来微不足道,但即使在网上拖网一段时间之后,我似乎无法让它起作用:
import numpy as np import matplotlib.pyplot as plt import matplotlib.cm as cm X = np.random.rand(30,40) fig = plt.figure() fig.add_axes(aspect="equal",extent=[0,X.shape[1],X.shape[0]]) ax = fig.gca() ax.autoscale_view(True,False,False) ax.imshow(X,cmap = cm.gray) plt.show()
解决方法
我自己也有同样的问题.如果imshow的插值=’最近’选项不够好,那么如果你的主要目标是在matplotlib中看到原始的,未缩放的,非插值的,未扫描的像素,那么你就无法击败figimage恕我直言.演示:
import numpy as np import numpy.random import matplotlib.pyplot as plt a=256*np.random.rand(64,64) f0=plt.figure() plt.imshow(a,cmap=plt.gray()) plt.suptitle("imshow") f1=plt.figure() plt.figimage(a,cmap=plt.gray()) plt.suptitle("figimage") plt.show()
当然这意味着放弃轴(或以某种方式自己绘制).有一些图形选项可以让你在图形周围移动图像,所以我想可以在其他方法创建的某些轴上操纵它们.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。