在上一个问题中,我曾问过一个包,它允许我用python画圆和箭头,有人建议我试试PyQt4。在
我的问题是,我试图找到可以让我绘制这些小部件的函数,但一直未能做到。在
如果有人知道如何在我的数学圆上画箭头,请告诉我怎么画。在
顺便说一句,如果你们中有人知道Python中的任何一个包可以让我这么做,请帮忙。在
我需要在我的程序中绘制NFA,因此需要这个。在
http://en.wikipedia.org/wiki/File:NFAexample.svg
非常感谢
作为更新,我想说的是,我不仅对PyQt4感兴趣。如果您知道有任何这样的包可以让我用python绘制数学图形用户界面,请帮助:)
使用graphviz您可以制作这样的图表
使用这样的代码:
通常,从命令行调用graphviz
dot
程序。它本身与Python无关。但是,要以编程方式制作图表,可以使用Python将
dot
代码构造为一个巨大的字符串,并使用subprocess.Popen
通过dot
来处理字符串。dot
可以多种格式输出,包括SVG或PNG。或者,您可能想研究pygraphviz,以获得一个更“Pythonic”的graphviz库接口。另外请注意,graphviz支持UTF-8编码字符,因此您可以通过在UTF-8字符集中找到适当的符号来在图表中包含下标和其他数学符号。
graphviz的一个优点是您不必繁琐地指定图的布局,只需说明哪些节点连接到其他节点。节点的位置是由graphviz自动确定的。
这种优势也有点让人衰弱——很难像您希望的那样在图中放置元素。例如,请注意,S1和S2没有水平对齐。我也不知道如何使S0>;S1中的箭头更优美地弯曲,S1和S2之间的箭头完全对称,或者如何使来自S2>;S1的边缘标签显示在箭头下方,等等。。。 我可能不知道该怎么做。
有关graphviz可以做什么的更多示例,请参见graphviz gallery。
您可能想看看NetworkX。可能正好适合你的需要!既然你想画画美国橄榄球协会gallery显示了一些可以做的事情。
看看API的这一部分:http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qgraphicsitem.html
我相信这个类和它的子类会做你想要的。对于某些东西,比如箭头,您可能需要用现有的元素(比如直线)构造它们,或者定义自己的qgraphicsitem子类来实现您想要的功能。
相关问题 更多 >
编程相关推荐