繁体   English   中英

用Python 3.x绘图

[英]Graphing in Python 3.x

在Python 2.6中,我使用matplotlib来制作一些简单的图形。 但是,它与Python 3.1不兼容。

有哪些替代模块可以完成同样的事情而不是非常复杂?

你说你想要创建一些简单的图形,但还没有真正说出你想要的简单图形或图形。 只要它们不太复杂,您可能需要考虑使用Google Chart API

例如 示例图表

这有一些优点:您只需要构建一个描述所需图表的URL,这样就不会有任何问题从Python 3.x中使用它。 当然也存在一些缺点:生成图表时需要连接互联网,而您可能没有使用matplotlib的图表样式。

如果您不想直接构造URL,那么至少有一个用于图表API的Python包装器 它不能直接在Python 3.x上运行,但是通过2to3运行它似乎可以成功转换它。

支持Python 3的稳定版本已经发布: 官方公告

我写了一个小例子,在python 3中运行并使用谷歌图表api (正如Duncan所建议的,我在看到这篇文章后写了解决方案)。

这是不理想的,因为它添加了一个依赖项,第三方可能会在任何时候破坏向后兼容性,但图形很好,并且绝对没有添加对python代码的依赖。 值得考虑的不是'关键任务代码'。

您可以在此处找到/下载示例 以下是从.xml文件中的数据生成的图表: 替代文字

# build the query with template parameters
query ="http://chart.apis.google.com/chart?chxl=0:__X_LABELS__&chxp=__X_LABELS_POS__&chxr=0,__MIN_TIME__,__MAX_TIME__|1,__MIN_WEIGHT__,__MAX_WEIGHT__&chxs=0,676767,11.5,0,lt,676767|1,676767,11.5,0,lt,676767&chxt=x,y&chs=800x300&cht=lc&chco=3072F3&chds=__MIN_WEIGHT__,__MAX_WEIGHT__&chd=t:__COMMASEP_WEIGHT__&chdl=Weight&chdlp=b&chls=2,4,1&chma=5,5,5,25&chtt=Your+Weight+Timeline"

[...]

# relace template with data
query = query.replace('__X_LABELS__', strXLabels)
query = query.replace('__X_LABELS_POS__', strXLabelsPos)
query = query.replace('__MIN_TIME__', str(min(lst_dateEpoch)))
query = query.replace('__MAX_TIME__', str(max(lst_dateEpoch)))

[...]

# use 'urllib.request' to download the data & write to file
sock = urllib.request.urlopen(query)
image_bytes = sock.read()
sock.close()

fh = open('Weight_GoogleGraphApi.png', 'wb')
fh.write(image_bytes)
fh.close()

python 3.x(windows)的Matplotlib二进制文件是可用的。 http://www.lfd.uci.edu/~gohlke/pythonlibs/

作为安装subversion以获取源代码的替代方法,Numpy的SF文件页面具有1.5的最新副本,有几种不同的(Windows友好的)格式:

http://sourceforge.net/projects/numpy/files/NumPy/1.5.0b1/

也许PyQwt 他们声称3.x兼容性。 我只使用Qwt(C ++ lib PyQwt基于),但我发现它非常有用。

rpy2提供了对R的图形功能的访问,并且rpy2正在与Python 3兼容(感谢Google在夏天为Greg提供资金的帮助)。

针对当前dev分支的代码位于补丁队列中

编辑: rpy2 2.2.0正在使用Python 3.2

MathGL (GPL绘图库)具有Python接口,也可以与Python 3一起使用。

使用PyQt至少有两个图形库,即PyQwt和PyQtGraph。 我已经在Python 2.6上使用PyQwt几周了,它非常方便。 文档不是很好,大多数时候我需要参考Qwt文档或示例 - 虽然我不得不查看文档的时间很少,但它很容易使用。 我刚刚尝试在python 3.1上构建它,但没有成功。 我找不到5.2.1的tar包,这是唯一与python 3.0兼容的版本,MacPorts也没有。

在python.org上还有一个相当完整的绘图库列表http://wiki.python.org/moin/NumericAndScientific/Plotting

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM