Python中文
首页
教程
问答
标签
搜索
登录
注册
交互式图形可视化
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<h3>情况</h3> <p>与<a href="https://stackoverflow.com/questions/5718204/interactive-python-network-graph-modeling">this question</a>类似,我正在寻找一种方法来创建一个GUI,在这个GUI中,用户可以看到一个图形(在<a href="http://en.wikipedia.org/wiki/Graph_theory" rel="noreferrer">graph theory</a>意义上)并与之交互。随着时间的推移,车辆将在图表中从无移动到节点。用户应该能够添加节点和边,添加车辆并设置其目的地。</p> <p>我已经实现了底层的图形模型和业务逻辑,我只需要一个图形用户界面。这意味着我不需要像Djistra算法那样的图形算法功能。</p> <p>如果可能,解决方案应该独立于平台。底层模型是用python编写的,因此GUI解决方案要么需要基于python(这是最好的),要么应该很容易与python接口(可能是IPC)。</p> <p>性能是个问题。它不需要盲目地快速,但必须足够快才能跟上底层模型。在概念上,图中可能出现的节点、边和车辆的数量没有限制。</p> <h3>可能的方法</h3> <p>我看过各种可视化库:</p> <ul> <li><a href="http://nodebox.net/code/index.php/Graph" rel="noreferrer">NodeBox</a></li> <li><a href="http://networkx.lanl.gov/" rel="noreferrer">NetworkX</a></li> <li><a href="http://matplotlib.sourceforge.net/" rel="noreferrer">matplotlib</a></li> <li><a href="http://www.graphviz.org/" rel="noreferrer">GraphViz</a></li> </ul> <p>我已经考虑过使用<a href="http://www.opengl.org/" rel="noreferrer">OpenGL</a>。</p> <p>我考虑过直接画到<a href="http://www.wxpython.org/" rel="noreferrer">wxPython</a>。</p> <h3>问题</h3> <p>我没有使用任何图形库。我不知道他们是否有能力提供所需的功能。例如,matplotlib在图库中似乎有许多非图论图形。除了通过NetworkX,我找不到其他人用它实现图形的例子。例如,NetworkX可以绘制沿边移动的对象吗?</p> <p>一个OpenGL解决方案几乎肯定需要更多的时间来实现。我必须自己编写用于移动边缘对象的函数。我需要编写一个函数,用于在正确的位置绘制边,并为所有边、节点和车辆等绘制标签。我需要实现菜单并从头开始处理交互。</p> <p>我不知道如何在wxPython中实现这一点。我只知道如何将它与标准小部件结合使用。<strong>更新:</strong>我找到了<a href="https://stackoverflow.com/questions/4447658/wxpython-network-graph-clickable-with-context-menu-any-pkgs">this question</a>,它的答案指向<a href="http://www.wxpython.org/docs/api/wx.lib.ogl-module.html" rel="noreferrer">wx.lib.ogl</a>或<a href="http://www.wxpython.org/docs/api/wx.lib.floatcanvas-module.html" rel="noreferrer">wx.lib.floatcanvas</a>作为在纯wxPython中实现解决方案的机制。</p> <h3>问题</h3> <p>是否有任何可视化库满足我的要求?其中,哪个最合适?有没有其他的图书馆我错过了,可以满足我的要求?类似于<a href="https://www.jgraph.com/jgraph.html" rel="noreferrer">JGraph</a>但对于Python而不是Java来说是合适的。</p> <p>您对在OpenGL或wxPython中实现这一点有何看法?</p> <p>有没有其他我认为不合适的方法?</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我的直觉告诉我,使用graphviz这样的东西来呈现图形本身,使用wx来处理UI是一个很好的方法。在OpenGL中重新实现所有的图形绘制位似乎是一个巨大的浪费。<a href="http://networkx.lanl.gov/pygraphviz/index.html" rel="nofollow">pyGraphViz</a>非常容易使用,因此您可能会很快得到一些有用的东西,并根据性能需要进行调整。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
Python中两个字典的交集
2 回答
python中两个字符串上的异或操作数?
6 回答
Python中两个字符串中的类似句子
7 回答
Python中两个字符串之间的Hamming距离
1 回答
python中两个字符串之间的匹配模式
10 回答
python中两个字符串之间的按位或
8 回答
python中两个字符串之间的数据(字节)切片
3 回答
python中两个字符串之间的模式
8 回答
python中两个字符串作为子字符串的区别
10 回答
Python中两个字符串元组的比较
5 回答
Python中两个字符串列表中的公共字符串
4 回答
python中两个字符串的Anagram测试
1 回答
Python中两个字符串的正则匹配
7 回答
python中两个字符串的笛卡尔乘积
3 回答
Python中两个字符串相似性的比较
10 回答
python中两个字符串语义相似度的求法
5 回答
Python中两个字符置换成固定长度的字符串,每个字符的数目相等
8 回答
Python中两个对数方程之间的插值和平滑数据
6 回答
Python中两个对象之间的And/Or运算符
1 回答
python中两个嵌套字典中相似键的和值
6 回答