加入收藏 | 设为首页 | 会员中心 | 我要投稿 阜阳站长网 (https://www.0558zz.com/)- 科技、建站、内容创作、云计算、网络安全!
当前位置: 首页 > 编程开发 > Python > 正文

python – matplotlib绘制小图像,无需重新采样

发布时间:2021-01-12 05:26:28 所属栏目:Python 来源:互联网
导读:我正在尝试使用matplotlib在 python中绘制一个小图像,并希望显示的轴具有与它生成的numpy数组相同的形状,即数据不应重新采样.换句话说,数组中的每个条目应对应于屏幕上的像素(或其左侧).这看起来微不足道,但即使在网上拖网一段时间之后,我似乎无法让它起作用

我正在尝试使用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()

当然这意味着放弃轴(或以某种方式自己绘制).有一些图形选项可以让你在图形周围移动图像,所以我想可以在其他方法创建的某些轴上操纵它们.

(编辑:阜阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读