グラフ構造(ツリー/ステート マシンなど) を描画し、データをフィード/ストリーミングpython
できるコード例を見つけるのに苦労しています。これにより、最新のデータがプロットされます。
質問する
1578 次
2 に答える
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())
于 2013-03-15T21:27:15.953 に答える
1
ファイルを更新し、別のプロセスから定期的に読み取る場合は、単純な Web サーバーを作成し、ブラウザーを UI として使用し、JSON を使用して、クライアントが定期的にデータを要求することを検討することをお勧めします。
IPython の使用を検討しましたか? 彼らの HTML Notebook は、matplotlibでのレンダリングを非常にうまくサポートしています。必要なものを取得するには、まだ JavaScript を実行する必要があるかもしれませんが、開発者の GitHub アカウントなどで利用できる多くの作業が行われていますが、マスターにはまだありません。
Qtコンソールもあり、あなたが望むことをよりよく行うことができるかもしれません.
于 2013-03-15T15:14:57.683 に答える