我正在尝试绘制一个充满1和0的数组,并且大部分时间它运行良好,看起来像this。
然而,当我的数组变得太大(我需要绘制60,000x70)时,情节只会绘制part of the data。
起初我认为这可能是某种内存问题,但是阵列实际上并不是那么大,在查看内存使用情况时,也没有任何过于繁重的迹象。
然而,当我绘制转置数组时,它变得非常奇怪,因为它可以正常工作like a breeze。
我在论坛里看了很多,但显然没有其他人有过这样的问题。这可能是个错误吗?我真的需要在原始方向上绘制它。所以,任何帮助都非常感谢。提前谢谢!
更新
这完全重现了我的问题:
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()
代码产生this。在左上方的子图中,绘制了所有内容。但是,在显示转置数组(右上角)的图中,matplotlib仅绘制了第一个~10000列。较低的两个图只显示了阵列的前半部分(左侧正常,右侧转置),正如您所看到的,对于较小的阵列,没有问题。
解决
matplotlib 2.x
不会出现此问题答案 0 :(得分:0)
[解决] 只有matplotlib的过时版本才会出现此问题。