我想要一個matplotlib數字作爲3維RGBA數組。我使用以下代碼來執行轉換:python matplotlib figure into rgba array
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
canvas = np.zeros((20, 20))
img = plt.imshow(canvas, interpolation='none').make_image()
h, w, d = img.as_rgba_str()
print(h,w)
rgba_array = np.fromstring(d, dtype=np.uint8).reshape(h, w, 4)
plt.imshow(rgba_array)
Out[1]: (249, 373)
<matplotlib.image.AxesImage at 0x111fa8b10>
爲什麼從原始正方形陣列的縱橫比的變化?有沒有我可以指定的參數,或者是否有一個可以使圖形的rgba數組處於原始形狀的方法?