Pydot — это оболочка для Graphviz. Разумно сначала проверить, можете ли вы сделать это в Graphviz.
Оказывается, вы можете:
- Чтобы связать URL-адреса с узлами, вы можете использовать атрибут Graphviz URL.
- Чтобы сделать ссылки доступными в браузере, вы можете использовать этот ответ.
Теперь вы можете сделать это с помощью pydot? Я так думаю, но не проверял. Взглянув на исходный код pydot, я вижу, что он поддерживает любые атрибуты — в тестах мы видим, что пользователь проходит shape
:
self.graph_directed.add_node( pydot.Node('node', shape='box') )
и в сам pydot мы видим, что он может поддерживать любой вид атрибутов, а не только shape
:
class Node(object, Common):
(...)
def __init__(self, name = '', obj_dict = None, **attrs):
(...)
self.obj_dict[ 'attributes' ] = dict( attrs )
Поэтому я бы попробовал использовать pydot.Node('node', url='http://somewhere')
. Если это не удастся, я создам файл .dot
вручную и передам его через pydot.
Предупреждение
Если вы планируете использовать SVG в <img/>
, скорее всего, ваши ссылки не будут работать из-за политики безопасности вашего веб-браузера. В этом случае вам нужно встроить его непосредственно в ваш HTML, как это делает веб-сайт, на который вы ссылаетесь. Это особенно важно, если изображения размещены на другом домене, чем главная страница.
person
rr-
schedule
10.06.2015