Существует множество потрясающих возможностей для создания анимированных изображений с использованием mpld3
. Однако, похоже, что все «движущиеся части» - это ответственность JavaScript. Более того, есть много запросов в Интернете и переполнение стека, где люди прямо просят эту возможность.Возможно ли передавать данные (обратные вызовы) из mpld3 в ipython?
Retrieve Data From Dynamic mpld3 plot in python
Get point information after dragging
How to "dump" points selected with the LinkedBrush plugin for mpld3?
mpld3 ~ Select points and get their coordinates?
со ссылками в нем, но все ответы неверны, так как они предлагают использовать какие-то предупреждения или титрами. Вторая ссылка, однако, наиболее интересна, поскольку предлагается добавить некоторую HTML-форму и нажать кнопку, чтобы отправить данные на «server-python» из «client-javascript». Существует еще один интересный ноутбук
http://nbviewer.jupyter.org/gist/aflaxman/11156203
, который упоминается многими людьми как источник вдохновения - он сохраняет конфигурации выхода в .html файл. Возможно, этот обмен с жестким диском можно использовать для продолжения этой информации с помощью python.
Двигаясь дальше, я обнаружил IPYwidgets
с большим количеством примеров и даже возможностей ИСТИННОГО взаимодействия клиент-сервер. По сути, мы можем начать с основных слайдеров и кнопок, но потом мы видим, что на этой основе построены более сложные пакеты: в основном bqplot
и некоторые другие унаследованные пакеты.
Что я хочу - это просто перетащить несколько точек на изображение, а затем передать их на iPython, чтобы сделать некоторые дополнительные сюжеты - это очень сложно и определенно нельзя переместить на JavaScript. Но похоже, что несмотря на то, что команда bqplot
проделала огромную работу, вы можете использовать только некоторые «предопределенные» группы взаимодействий, поэтому поведение перетаскивания снова не включается.
Когда я попытался (не очень глубоко) ввести исходный код mpld3 и изменить его и, возможно, объединить с ipywidgets, я столкнулся с тем, что многие вещи устарели, код развивается очень быстро, что не соответствует существующим примеры в Интернете: большинство тополей очень старые, и запросы тоже очень старые. Поэтому я не мог ничего сделать из-за беспорядка, многие примеры терпят неудачу из-за отсутствия обратной совместимости.
Резюме. Я был бы рад, если бы кто-нибудь предоставил какой-то способ перетаскивания точек и передать их координаты на python, но который мог бы мне помочь, - это возможность передавать информацию из mpld3 более абстрактным образом, так что другие случаи могут быть включены.
UPD: Кстати, через некоторое время после публикации исходного вопроса я нашел довольно корректное решение для переполнения стека: [Интерактивные сюжеты в ноутбуке jupyter с перетаскиваемыми точками] (http://stackoverflow.com/questions/30207912/interactive-plot-in-jupyter-ipython-notebook-with-draggable-points-that-call? rq = 1), он работал для меня, но с некоторыми ошибками отображения, которые я не мог исправить. Ответ почему-то не принят. Во всяком случае, вся процедура довольно сложная. –