Как буферизовать графики pyplot - PullRequest
0 голосов
/ 20 июня 2020

TL; DR: я хочу сделать что-то вроде

cache.append(fig.save_lines)
....
cache.load_into(fig)

Я пишу (QML) интерфейс для pyplot-подобной и основанной на matplotlib библиотеки визуализации MCM C, и ударил небольшой блокпост. Я хочу иметь возможность создавать и кэшировать цифры в фоновом режиме, чтобы, когда пользователь перемещает несколько ползунков, графики не генерируются повторно (они сложны и дороги для повторного вычисления), а просто вводятся из кеша.

Для этого мне нужно иметь возможность рисовать (но не рендеринг) в автономном режиме, а затем просто изменять содержимое холста. Фактически я хочу сделать что-то вроде кеширования объекта

line = plt.plot(x,y)

, но для нескольких подзаголовков.

Библиотека создает очень сложные графики, поэтому я не могу отслеживать объекты line2D и используйте их.

Моя попытка решения: рендеринг в растровое изображение с правильным DPI и его использование. Проблемы возникают, если я изменяю размер холста и не хочу масштабировать пиксельные карты. У меня были ситуации, когда замечательное сообщество SO предлагало намного лучших решений, чем то, что я имел в виду, поэтому, если у кого-то есть опыт и / или идеи о том, как добиться такого поведения, я был бы очень очень признателен!

...