当使用matplotlib.pyplot.imshow
时,假设我有一个100x100阵列,但图像分辨率只有50x50,那么如何转换或选择绘图数据?什么参数控制这种行为?当没有足够的分辨率来显示所有数据时,matplotlib.pyplot.imshow如何“挤压”数据?
我能找到的全部是matplotlibrc
,有#image.resample : False
,但我找不到有关选项的文档。 #image.interpolation
有什么影响?
谢谢!
当使用matplotlib.pyplot.imshow
时,假设我有一个100x100阵列,但图像分辨率只有50x50,那么如何转换或选择绘图数据?什么参数控制这种行为?当没有足够的分辨率来显示所有数据时,matplotlib.pyplot.imshow如何“挤压”数据?
我能找到的全部是matplotlibrc
,有#image.resample : False
,但我找不到有关选项的文档。 #image.interpolation
有什么影响?
谢谢!
库as seen here中有多种插值方法可用。它看起来像interpolation
is an optional parameter到imshow()
方法。
所以我尝试了一些测试,我认为额外的数据只是跳过而不是任何形式的转换,至少与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)
这对知道有帮助!谢谢! – Dan