在Python中绘制数百万个数据点?

时间:2015-01-05 23:26:53

标签: python plot large-data

我写了一个复杂的代码。代码生成一组数字,我想绘制它们。问题是我不能将这些数字放在列表中,因为它们有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()

假设我有数十亿ij

1 个答案:

答案 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()

生成下图: enter image description here 这不是你想要实现的吗?在所有输入数字都没有存储到任何地方之后,只要它们生成就添加到图中。您并不需要Matlab的hold等效项,在您致电fig.show()plt.show()以显示当前数字之前,该数字不会显示。< / p>

或者你是否正试图克服你可以解决的问题?把matplotlib.figure放在你的RAM中?在这种情况下,我的回答并没有回答你的问题。然后,您必须将部分数据(仅部分数据)保存为图片并按照评论中的建议进行组合,或者考虑另一种显示数据的方式,如其他答案所示。