![](/img/trans.png)
[英]Using the values of the first row of a matrix as ticks for matplotlib.pyplot.imshow
[英]matplotlib.pyplot.imshow awkwardly not plotting all of the data when array is transposed
我試圖繪制一個由1和0組成的數組,並且在大多數情況下,它工作良好,看起來像這樣 。
但是,當我的數組變得太大時(我需要繪制60,000x70),該繪制只會繪制部分數據 。
起初我以為這可能是某種內存問題,但是數組實際上畢竟不是那么大,並且當查看內存使用情況時,也沒有出現過分沉重的跡象。
但是,當我繪制轉置數組時,它真的變得很奇怪,因為那樣的話它就像微風一樣工作。
我在論壇上四處逛逛,但顯然沒有其他人遇到過這樣的問題。 可能是個錯誤嗎? 我真的需要按原始方向繪制它。 因此,我們非常感謝您的幫助。 提前致謝!
更新
這恰好重現了我的問題:
import numpy as np
import matplotlib.pyplot as plt
# generate fake data
a = np.random.random((60000, 70))
for x in np.nditer(a, op_flags=['readwrite']):
if x > 0.9:
x[...] = 1
else:
x[...] = 0
# plot fake data
fig, axes = plt.subplots(2, 2)
axes[0][0].imshow(a, interpolation='none', cmap='binary', aspect='auto')
axes[0][1].imshow(a.T, interpolation='none', cmap='binary', aspect='auto')
axes[1][0].imshow(a[:30000], interpolation='none', cmap='binary', aspect='auto')
axes[1][1].imshow(a[:30000].T, interpolation='none', cmap='binary', aspect='auto')
plt.show()
代碼產生了這個 。 在左上方的子圖中,所有內容均已繪制。 但是,在顯示轉置數組的圖中(右上方),matplotlib僅繪制了前〜10000列。 下方的兩個圖僅顯示了陣列的前半部分(左法線,右移置),如您所見,較小的陣列沒有問題。
解決了
matplotlib 2.x不會發生此問題
[解決]該問題僅在matplotlib的版本過時出現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.