簡體   English   中英

matplotlib.pyplot.im顯示在轉置數組時笨拙地不繪制所有數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM