Хотите сделать статический график SVG (из matplotlib) интерактивным через браузер

Моя цель – создать сюжет, с которым вы можете взаимодействовать в браузере. В идеале, мне нужна хорошо документированная и зрелая библиотека построения JavaScript, которая поддерживает SVG. Насколько я могу судить, этого не существует, хотя, пожалуйста, поправьте меня, если я ошибаюсь.

Я определил пару альтернатив.

  1. Используйте графическую библиотеку JavaScript (например, Raphael) и рисуйте все с нуля. Это похоже на много ненужной, утомительной работы.
  2. Используйте библиотеку построений для создания SVG, а затем используйте JavaScript для поддержки взаимодействия. Это кажется более управляемым, хотя у меня есть следующая проблема: как добавить метаданные в SVG из библиотеки графиков (matplotlib)? Эти метаданные не будут отображаться при отображении SVG, но они будут доступны из JavaScript.

Любые советы очень ценятся.

4 Solutions collect form web for “Хотите сделать статический график SVG (из matplotlib) интерактивным через браузер”

Один из способов этого можно увидеть в галерее matplotlib .

В основном:

  1. В matplotlib используйте element.set_gid ("youridhere") в элементе matplotlib, который вы хотите сделать интерактивным. То есть, используйте set_gid () на выходе из plot () / hist () / whatever ().
  2. Создайте svg с matplotlib, но в качестве файла используйте объект StringIO.
  3. Разберите svg с помощью библиотеки xml (например, xml.etree.ElementTree)
  4. Найдите элементы xml с указанным вами идентификатором (например, «youridhere»).
  5. Добавьте атрибуты onclick / on $ {theeventyoucareabout} с именем функции javascript.
  6. Добавьте элемент сценария с вашим javascript как CDATA в дерево xml.
  7. Экспортируйте xml в файл svg!

Существует бэкэнд HTML5: http://code.google.com/p/mplh5canvas/

Поиск дает следующее: http://www.farinspace.com/top-svg-javascript-libraries-worth-looking-at/

Я использовал следующие библиотеки для графиков:

  1. jqPlot – Очень хорошо, но пока не поддерживает svg
  2. Холст HTML5. Да, мне приходилось много делать с нуля (даже всплывающие подсказки), но с большой гибкостью играть с

Если ваша цель состоит в том, чтобы вывести результат из статического svg, сгенерированного каким-то инструментом построения графика, и превратить его в нечто интерактивное, вам, вероятно, придется что-то придумать, так как результат, скорее всего, будет отличаться для каждого такого инструмента.

Тем не менее, существует множество интерактивных библиотек графиков SVG, некоторые примеры:

  • JSXGraph
  • Highcharts
  • D3.js
  • … и многое другое
  • график SVG в фигуре matplotlib (встроенный в wxPython)
  • преобразование латексного кода в mathml или svg-код в python
  • Перевернутый глиф: растровое изображение> SVG через autotrace> glyph через fontforge
  • Inline SVG, обслуживаемый скриптом Python в Google App Engine, не отображается
  • Python получает координаты векторного пути из файла .svg
  • Исходный код для преобразования JPG (битмап) в SVG (вектор)?
  • Как вставить файл SVG в документ PDF?
  • Преобразование SVG с встроенным CSS в PDF в Python
  • Python - лучший язык программирования в мире.