我尝试用Plotly绘制时间序列。图形通常包含20万行和10条曲线,结果是80Mo的html文件。但这20万行受制于 MemoryError
Plotly提出的,这很限制我的学习。
py.plot(fig, filename=self.filename, auto_open=True)
File "C:\Users\Max\AppData\Local\Programs\Python\Python38-32\lib\site-packages\plotly\offline\offline.py", line 586, in plot
pio.write_html(
File "C:\Users\Max\AppData\Local\Programs\Python\Python38-32\lib\site-packages\plotly\io\_html.py", line 508, in write_html
html_str = to_html(
File "C:\Users\Max\AppData\Local\Programs\Python\Python38-32\lib\site-packages\plotly\io\_html.py", line 137, in to_html
jdata = json.dumps(
File "C:\Users\Max\AppData\Local\Programs\Python\Python38-32\lib\json\__init__.py", line 234, in dumps
return cls(
File "C:\Users\Max\AppData\Local\Programs\Python\Python38-32\lib\site-packages\_plotly_utils\utils.py", line 60, in encode
return _json.dumps(
File "C:\Users\Max\AppData\Local\Programs\Python\Python38-32\lib\json\__init__.py", line 234, in dumps
return cls(
File "C:\Users\Max\AppData\Local\Programs\Python\Python38-32\lib\json\encoder.py", line 202, in encode
return ''.join(chunks)
MemoryError
我已经实施了缩编(如 本专题 建议),还可以将数值四舍五入到有限的小数,以避免大的.html文件。但这还是不够的。
另外,比如在绘制10条曲线时,即使它们共享同一个X轴,html文件中也会包含10倍的相同X向量。有什么方法可以改善这种情况吗?
当我看Plotly在连接数据时和停止工作时的内存,它似乎只利用了500Mo的内存,而我的电脑内存远远没有满,还有1、2Go的空闲内存。因此,我不明白为什么会出现这种 MemoryError
被提出。Plotly或Python选项中是否有专门的内存空间参数?
我甚至准备使用任何其他库,只要它们能提供足够的交互性,就能让我画出大型图形。比如Matplotlib能够画出大的时间序列,而Plotly不能,但它的交互性就差了很多。这个 似乎是超级轻量级的时间序列专用软件,但我没有找到任何Python包,而且它需要从头开始开发Python接口。
https:/bcolz.readthedocs.ioenlatestintro.html#bcolz-at-glance
根据你的问题,我在Google上快速搜索了一下,这似乎是一个合理的解决方案,虽然我不确定你能不能利用它与Plotly。你得自己试一试。