使用matplotlib.pyplot.imshow
时,假设我有一个100x100阵列,但图像分辨率只有50x50,那么数据如何转换或选择用于绘图?什么参数控制这种行为?
我能找到的只有matplotlibrc
,有#image.resample : False
,但我找不到有关选项的文档。 #image.interpolation
会产生什么影响吗?
谢谢!
答案 0 :(得分:0)
库as seen here中有几种插值方法。对于interpolation
方法,它看起来像imshow()
is an optional parameter。
答案 1 :(得分:0)
所以我尝试了一些测试,我认为额外的数据只是被跳过而不是任何形式的转换,至少使用interpolation='none'
和interpolation=bilinear
。注意,在某些情况下,数据点会不均匀地拉伸。
我没有足够的声誉来发布数据,但这里是代码。 (这些图需要放大才能看到)。
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(1)
grid = np.random.rand(10, 10)
fig=plt.figure(figsize=(1,1),frameon=False)
plt.Axes(fig, [0., 0., 1., 1.])
plt.axis("off")
plt.subplots_adjust(left=0,right=1,bottom=0,top=1)
plt.imshow(grid,interpolation='none',cmap='jet')
plt.savefig("test_dpi15_none.png",bbox_inches=0,pad_inches=0, dpi=15)
plt.savefig("test_dpi10_none.png",bbox_inches=0,pad_inches=0, dpi=10)
plt.savefig("test_dpi5_none.png",bbox_inches=0,pad_inches=0,dpi=5)
plt.savefig("test_dpi2_none.png",bbox_inches=0,pad_inches=0,dpi=2)