我很难找到一个python
代码示例来绘制图形结构(如树/状态机),并且您可以提供/流式传输数据 to,以便绘制最新数据。
答案 0 :(得分:2)
如果我理解正确的话,这段代码应该可以解决问题:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import sys
import threading
import time
import networkx as nx # http://networkx.github.com/
import xdot # http://code.google.com/p/jrfonseca/wiki/XDot
import gtk
class MyClass(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.graph = nx.DiGraph(name="my_tree")
self.xdot = xdot.DotWindow()
self.xdot.connect('destroy', gtk.main_quit)
def run(self):
gtk.main()
def add_node(self, parent, node):
self.graph.add_edge(parent, node)
self.xdot.set_dotcode(nx.to_agraph(self.graph).to_string())
self.xdot.show_all()
def main(argv=None):
gtk.gdk.threads_init()
my_class = MyClass()
my_class.start()
my_class.add_node(1, 2)
time.sleep(0.5)
my_class.add_node(1, 3)
time.sleep(0.3)
my_class.add_node(2, 4)
time.sleep(1.3)
my_class.add_node(2, 5)
my_class.add_node(1, 6)
if __name__ == "__main__":
sys.exit(main())
答案 1 :(得分:1)
如果您要更新文件,然后定期从单独的进程中读取它,您可能要考虑只编写一个简单的Web服务器并将浏览器用作UI,然后使用JSON,客户端请求数据周期性。
您是否考虑过使用IPython?他们的HTML Notebook非常支持使用matplotlib进行渲染。你可能仍然需要做一些JavaScript才能得到你想要的东西,但是他们已经完成了很多工作,可以在开发人员的GitHub帐户和东西上找到,但是还没有掌握。
他们也有一个Qt控制台,可以更好地做你想做的事。