Как сгенерировать вывод языка DOT на Python - PullRequest
3 голосов
/ 30 января 2012

Я пытаюсь собрать данные из твиттера и визуализировать их через Graphviz. Я уже установил Graphviz, и в настоящее время я пытаюсь сгенерировать вывод языка DOT через Python, я столкнулся с проблемой невозможности получить какой-либо ответ из моего кода. Я хотел бы знать, генерирует ли мой код файл DOT или нет, и если да, где находится мой файл DOT? Ниже мой код.

OUT ="Paul_search_results.dot"
try:
    nx.drawing.write_dot(g, OUT)
except ImportError, e:
    dot = ['"%s" -> "&s" [tweet_id=%s]'% (n1, n2, g[n1][n2]['tweet_id'])\
           for n1, n2 in g.edges()]
    f = open(OUT, 'w')
    f.write('strict digraph {\n%s\n}' % (';\n'.join(dot),))
    f.close()

Я использую Windows и знаю, что не могу easy_install pygraphviz, но код выше должен делать то же самое. Согласно книге, у меня должен быть выходной язык DOT под рукой с кодом выше. Но я не получил ответа от своего кода.

Я уже собрал информацию из твиттера, и узлы и ребра готовы.

>>> g.number_of_nodes()
235
>>> g.number_of_edges()
202

Может кто-нибудь помочь мне здесь?

Ответы [ 2 ]

1 голос
/ 30 января 2012

Ваш файл хранится в Paul_search_results.dot. Если вы не можете найти эту находку, измените имя, указав полный путь, чтобы вы могли поместить его в нужное место.

Остальная часть кода выглядит правильно, но трудно увидеть, не видя данных. Вы устанавливаете f=sys.stdout, чтобы увидеть генерируемый вывод.

К вашему сведению, онлайн-версия Graphviz доступна по адресу http://interactive.blockdiag.com

Удачи в вашем проекте.

1 голос
/ 30 января 2012

Если nx.drawing.write_dot() или f.write() записали какой-либо вывод в Paul_search_results.dot, этот файл будет находиться в вашем «Текущем рабочем каталоге».Я не имею понятия, на что Windows установит ваш текущий рабочий каталог, если вы просто дважды щелкните файл в Explorer.exe - это будет стоить вашего времени, чтобы запустить командную строку cmd.exe, выполните cd Перейдите в любой каталог, в котором вы хотите разместить свои выходные данные, выполните команду вручную, а затем просмотрите выходные данные консоли, чтобы увидеть, есть ли какие-либо сообщения об ошибках.

...