интерактивный _стандартный_ вывод из matplotlib - PullRequest
7 голосов
/ 06 октября 2011

Мне нравятся графики, которые создает matplotlib, и возможность сохранить их как SVG - это здорово, но ...

Я хотел бы иметь возможность сохранить рисунок в формате SVG, сопровождаемый кодом JavaScript, который добавил бы некоторый уровень интерактивности. Например. для каждой выборки данных в точечной диаграмме я хотел бы отобразить некоторую информацию во всплывающей подсказке. Есть ли способ добиться этого? Или как бы вы сделали это?

Ответы [ 2 ]

1 голос
/ 12 октября 2011

Это довольно просто, используя Cytoscape .Вам нужно создать два файла

  1. Файл, содержащий информацию об узле и ребре (File1)
  2. Файл, содержащий информацию всплывающей подсказки (File2)

File1

Это просто должно быть 3 столбца (sourceNode, destinationNode, edgeLabel) И затем вы можете перейти в Файл → Импорт → Сеть из таблицы (Текст / MS Excel). Выберите исходный узел, целевой узел и тип взаимодействия.Не забудьте изменить параметры отображения в VizMapper

File2

Файлы атрибутов узлов и ребер просто форматируются: файл атрибутов узла начинается с имени атрибута в первой строке (обратите внимание, что он не может содержать пробелы).Каждая следующая строка содержит имя узла, за которым следует знак равенства и значение этого атрибута.Числа и текстовые строки являются наиболее распространенными типами атрибутов.Все значения для данного атрибута должны иметь одинаковый тип.Например:

FunctionalCategory
YAL001C = metabolism
YAR002W = apoptosis
YBL007C = ribosome

Файл атрибутов ребер имеет почти такую ​​же структуру, за исключением того, что имя ребра является именем исходного узла, за которым следует тип взаимодействия в скобках, за которым следует имя целевого узла.Направленность имеет значение, поэтому переключение источника и цели будет ссылаться на другое (или, возможно, несуществующее) ребро.Ниже приведен пример файла атрибутов ребер:

InteractionStrength
YAL001C (pp) YBR043W = 0.82
YMR022W (pd) YDL112C = 0.441
YDL112C (pd) YMR022W = 0.9013

Поскольку Cytoscape рассматривает атрибуты ребер как направленные, значения атрибутов второго и третьего ребер относятся к двум разным ребрам (источник и цель меняются местами, хотя задействованные узлыто же самое).

Каждый атрибут хранится в отдельном файле.Файлы атрибутов узлов и ребер используют одинаковый формат.Имена файлов атрибутов узла часто используют суффикс ".noa", в то время как имена файлов атрибутов ребра используют суффикс ".eda".Cytoscape распознает эти суффиксы при поиске файлов атрибутов.

Атрибуты узлов и ребер могут быть загружены в командной строке с помощью параметров –n и –e или через меню Файл → Импорт.

КогдаДанные выражений загружаются с использованием матрицы выражений, они автоматически загружаются как данные атрибутов узла, если явно не указано иное.

Атрибуты узла и ребра прикрепляются к узлам и ребрам и поэтому не зависят от сетей.Атрибуты для данного узла или ребра будут применены ко всем копиям этого узла или ребра во всех загруженных сетевых файлах, независимо от того, импортируется ли файл атрибутов или сетевой файл первым.

Примечание. Для импорта сетиатрибуты в Cytoscape 2.4, перейдите в Файл → Импорт → Атрибут из таблицы (текст / MS Excel) ... или закодируйте их в сетевой файл XGMML

Каждая строка после первой строки идентифицирует имя объекта(узел в файле атрибута узла или ребро в файле атрибута ребра) вместе со строковым представлением значения атрибута.Разделитель всегда является знаком равенства;пробелы (пробелы и / или символы табуляции) до и после знака равенства игнорируются.

Имена объектов должны быть идентификатором узла или краем, как видно в крайнем левом столбце браузера атрибутов, если атрибут должен сопоставляться с чем-либо.Эти имена должны быть точно воспроизведены, включая регистр, иначе они не будут совпадать.

Прочитайте это для более подробной информации

0 голосов
/ 09 августа 2016

Если вы согласились бы иметь html-файл вместо svg;Боке, наверное, то, что вы ищете?

См. Здесь http://bokeh.pydata.org/en/latest/docs/gallery.html

Я не верю, что вам нужен сервер для большинства приложений, как говорится в документации: «Bokeh может генерировать автономные документы HTML с помощью функции file_html (). Эта функция может генерировать HTML из своего собственного общего шаблона или предоставленного вами шаблона. Эти файлы содержат данные для встроенного графика и полностью переносимы, но при этом предоставляют для вашего графика интерактивные инструменты (панорамирование, масштабирование и т. Д.). "

...