Я успешно нанес на график набор данных, упорядоченных по дате (ось X - дата), используя matplotlib.Однако я хочу иметь возможность вручную рисовать линии от одного (date1, y1) к другому (date2, y2) на построенном графике.
Кажется, я не могу найти ни одногопримеры, которые показывают, как это сделать - или даже если это возможно.
Подводя итог, я хочу сделать следующее:
- Нарисуйте набор линий на графикеgraph
- Сохранить данные нарисованной вручную линии в файл
- Загрузить данные нарисованной вручную линии из файла (для воссоздания графика)
- В идеале я хотел бы сохранить 'metaданные о нарисованных линиях (например, цвет, ширина линии и т. д.)
Может ли кто-нибудь опубликовать фрагмент скелета (желательно со ссылками на дополнительную информацию), чтобы показать, как я могу начать реализацию этого (основные требования - возможность рисовать линии на графике вручную, а затем сохранять / загружать линии в график).
Примечание: Под «вручную» я имею в виду возможностьЧтобы нарисовать линии, нажав на точку, а затем нажмите на другую точку впостроенный график.чтобы нарисовать линию между двумя точками (или просто щелкнуть мышью по одной точке и перетащить и отпустить мышь в другой точке на графике)
[[Обновить]]
Спасибо, большое спасибо за предоставленный вами фрагмент.Это позволяет мне делать то, что я пытаюсь сделать - однако, как только линия рисуется на холсте (после второго щелчка мыши), графический интерфейс падает, и я получаю это предупреждение на консоли:
/usr/local/lib/python2.6/dist-packages/matplotlib/backend_bases.py:2192: DeprecationWarning: Using default event loop until function specific to this GUI is implemented
warnings.warn(str,DeprecationWarning)
Знаете ли вы, что является причиной этого предупреждения и внезапного завершения программы?
Кроме того, возможно ли нарисовать более одной линии на графике?(Я предполагаю, что это потребует написания какого-либо обработчика событий, который будет создавать экземпляр переменной linedrawer).В настоящий момент у меня есть возможность нарисовать только одну линию, прежде чем приложение внезапно завершится.