我想在python中使用matplotlib繪製一個小圖像,並希望顯示的軸與它生成的numpy數組具有相同的形狀,即數據不應該重新採樣。換句話說,數組中的每個條目都應該對應屏幕上的一個像素(或其附近)。這似乎微不足道,但即使拖網而互聯網之後,我似乎無法得到它的工作:matplotlib繪製沒有重新採樣的小圖像
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], 0, X.shape[0]])
ax = fig.gca()
ax.autoscale_view(True, False, False)
ax.imshow(X, cmap = cm.gray)
plt.show()
看起來像您提供的代碼可以達到您想要的效果,矩形形狀(40x30)在繪製圖像中保留,並且軸限制與圖像形狀相匹配。我錯過了你的問題嗎? – gcalmettes 2012-03-28 15:55:17
對不起,我的措辭令人困惑。我感興趣的是像matlab中的imshow功能,其中屏幕上的像素數與矩陣中的條目數相匹配,即軸不會重新採樣以匹配數字大小。 – user588241 2012-03-28 15:59:31
你的意思是沒有插值的圖像?如果是這樣,只需用'matshow'改變你的代碼'imshow',或者添加'interpolation ='nearest''作爲imshow函數的參數。 – carla 2012-03-28 16:13:01