Я пытаюсь построить временной ряд с помощью Plotly. Графики обычно содержат 200 000 строк и 10 кривых, в результате получается 80Mo html файлов. Но эти 200000 строк ограничены 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
Я уже реализовал уменьшение размера (например, this topi c предлагает), а также округляет значения до ограниченного числа десятичных знаков, чтобы избежать больших файлов. html. Но все же этого недостаточно.
Также, например, при построении 10 кривых, даже если они имеют одну и ту же ось X, файл html будет содержать в 10 раз один и тот же вектор X. Есть ли способ улучшить это?
Когда я смотрю на память, пока Plotly объединяет данные, и когда он перестает работать, кажется, что используется только 500 МБ ОЗУ, в то время как память моего компьютера далека от заполнения по-прежнему 1 или 2 Go ОЗУ свободны. Таким образом, я не понимаю, почему возникает этот MemoryError
. Есть ли где-то в параметрах Plotly или Python параметр выделенного пространства памяти?
Я даже готов использовать любую другую библиотеку, которая позволила бы мне рисовать большие графики, если они обеспечивают достаточную интерактивность. Например, Matplotlib может рисовать большие временные ряды, когда Plotly не может, но это намного менее интерактивно. Этот кажется очень легким и посвящен временным рядам, но я не нашел его пакета Python, и для него потребуется разработать интерфейс Python с нуля.