在Python 2.6中,我使用matplotlib制作了一些简单的图形。但是,它与Python 3.1不兼容。
有哪些替代模块可以完成同样的事情,而不是非常复杂?
答案 0 :(得分:17)
你说你想创建一些简单的图形,但还没有真正说出你想要的简单图形或图形。只要它们不太复杂,您可能需要考虑使用Google Chart API。
e.g。
这有一些优点:你只需构建一个描述所需图表的URL,这样就不会有任何问题从Python 3.x中使用它。当然也存在一些缺点:生成图表时需要连接互联网,并且可能没有使用matplotlib的图表样式。
如果您不想直接构建网址,那么图表API至少有一个Python wrapper。它不能直接在Python 3.x上运行,但是通过2to3运行它似乎可以成功转换它。
答案 1 :(得分:11)
自此发布了支持Python 3的稳定版本:official announcement。
答案 2 :(得分:3)
我写了一个在python 3中运行并使用google chart api的小例子(正如Duncan所建议的,我看到这篇文章后写了解决方案)。
这是不理想的,因为它添加了一个依赖项,第三方可能会在任何时候破坏向后兼容性,但图形很好,并且绝对没有添加对python代码的依赖。值得考虑的不是'关键任务代码'。
你可以find/download the example here。以下是从.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()
答案 3 :(得分:1)
作为安装subversion以获取源的替代方法,Numpy的SF文件页面具有1.5的最新副本,有几种不同的(Windows友好的)格式:
答案 4 :(得分:1)
也许PyQwt?他们声称3.x兼容性。我只使用了Qwt(C ++ lib PyQwt是基于的),但我发现它非常有用。
答案 5 :(得分:1)
rpy2提供对R的图形功能的访问,并且rpy2正在与Python 3兼容(感谢Google在夏天为Greg提供资金的帮助。)
针对当前dev分支的代码位于patch queue。
编辑:rpy2 2.2.0正在使用Python 3.2
答案 6 :(得分:1)
MathGL(GPL绘图库)有Python接口,也可以与Python 3一起使用。
答案 7 :(得分:1)
python 3.x(windows)的Matplotlib二进制文件是可用的。 http://www.lfd.uci.edu/~gohlke/pythonlibs/
答案 8 :(得分:0)
至少有两个使用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
上还有一个相当完整的绘图库列表