2

グラフ構造(ツリー/ステート マシンなど) を描画し、データをフィード/ストリーミングpythonできるコード例を見つけるのに苦労しています。これにより、最新のデータがプロットされます。

4

2 に答える 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 に答える