我写了一个复杂的代码。代码生成一组数字,我想绘制它们。问题是我不能将这些数字放在列表中,因为它们有2 700 000 000
个。
所以我需要绘制一个点然后产生第二个点(第一个点被第二个点替换,因此第一个点被删除,因为我无法存储它们)。这些数字是在代码的不同部分生成的,所以我需要保存(MATLAB代码)图。
为了让你更容易想到,我在这里写了一个简单的代码,我想让你告诉我如何绘制它。
import matplotlib.pyplot as plt
i=0
j=10
while i<2700000000:
plt.stem(i, j, '-')
i = i + 1
j = j + 2
plt.show()
假设我有数十亿i
和j
!
答案 0 :(得分:0)
嗯,我不确定我是否理解正确但是:
import matplotlib.pyplot as plt
i=0
j=10
fig=plt.figure()
ax=fig.gca()
while i<10000: # Fewer points for speed.
ax.stem([i], [j]) # Need to provide iterable arguments to ax.stem
i = i + 1
j = j + 2
fig.show()
生成下图:
这不是你想要实现的吗?在所有输入数字都没有存储到任何地方之后,只要它们生成就添加到图中。您并不需要Matlab的
hold
等效项,在您致电fig.show()
或plt.show()
以显示当前数字之前,该数字不会显示。< / p>
或者你是否正试图克服你可以解决的问题?把matplotlib.figure
放在你的RAM中?在这种情况下,我的回答并没有回答你的问题。然后,您必须将部分数据(仅部分数据)保存为图片并按照评论中的建议进行组合,或者考虑另一种显示数据的方式,如其他答案所示。