xticks matplotlib将不会绘制python3




plt.title中文 (4)

我在virtualenv里成功安装了matplotlib。 现在我试图把它画出来。 我知道如何改变后端,但是我很难找出要改变的地方。

有没有人设法得到它完全与python3工作? 如果是的话,怎么样?

我已经尝试了一堆东西。 我已经循环了所有的后端,看看所有的抱怨,而不是我试图让他们中的一个工作。

另外可能值得注意的是,我的目标是将其整合到金字塔应用程序中。

以下是所有不同的后端到目前为止发生的事情:

  • Agg:这是默认的后端。 它不画
  • GTK:需要pygtk,这显然还没有被移植到python3
  • GTKAgg:同上
  • GTKCairo:说'所需的包GTK'假设一些沿着上述的路线
  • FltkAgg:看起来不像是python3版本。 即使它在python3 UI FAQ中提到。 我想这只是一个惊喜。 天哪darnit
  • MacOSX:我正在运行ubuntu。 假定不合适
  • QtAgg:需要pyqt。 看Qt4Agg
  • Qt4Agg:参见在virtualenv中安装PyQt4
  • TkAgg:ImportError:无法导入名称_tkagg。 我可以在解释器中运行import tkinter,所以我还不确定什么是坏的
  • WX:ImportError:Matplotlib backend_wx和backend_wxagg需要wxversion,找不到
  • WXAgg:同上
  • CocoaAgg:ImportError:CococaAgg后端需要安装PyObjC!
  • GTK3Cairo:ImportError:GTK3后端需要安装pygobject。 我试图安装它,但是当我尝试使用正确的Python配置它抱怨丢失的标题
  • GTK3Agg:没有名为cairo的模块。 但是我想我会碰到和上面一样的问题
  • 开罗:开罗后端要求pycairo安装
  • emf:你必须先从http://pyemf.sf.net安装pyemf。 看起来它应该做windowsey的东西,所以这可能不是一个好的选择
  • gdk:没有模块叫做gobject
  • pdf:运行但不画
  • pgf:同上
  • ps:同上
  • svg:同上
  • 模板:同上。

我用来测试我的后端的脚本是:

import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show()

到目前为止,我花了太多的时间来试图让python3.2和qt4玩的很好,而且我似乎在每一个转弯时都遇到了问题。 所以,我不想继续我的试错法,而是想问:

  1. Python3.2和Pyramid的最佳选择是什么?
  2. 我该如何做到这一点?

在此期间,我将继续尝试和错误的事情,并随时更新我的​​问题。

注意我正在尝试的东西

对于TkAgg:

因为tkinter正确导入我假设它正确安装(如果我错了,我想有一种方法来测试它?)。 这家伙http://ask.sagemath.org/question/626/sage-python-import-matplotlib-no-module-named有一个类似的问题,但我确定他的设置是从我的不同。 解决的办法是在python3.2站点包目录的肠子里找到tkagg.py并编辑有问题的import语句。 我发现很难相信matplotlib船破了(我不能运行修改的代码建议...)

对于WX的东西:

Python 3的wxPython表示还没有支持python3。 另外wxPython在他们的网站上没有提到python3,所以我猜这是不行的。 用完选项:/

可可:

同上: 用Python编写Cocoa应用程序3

EMF:

同上: http//pyemf.sourceforge.net/README.html


我写了一个答案,确保Ubuntu 16.04中的Python 3 virtualenv中的matplotlib使用https://askubuntu.com/a/785506/15003上的TkAgg后端,这在这里很有用。 结果是安装tk-dev ,激活virtualenv并在virtualenv中重新安装matplotlib

sudo apt install tk-dev
source venv/bin/activate
pip --no-cache-dir install -U --force-reinstall matplotlib

python -c 'import matplotlib as mpl; print(mpl.get_backend())' python -c 'import matplotlib as mpl; print(mpl.get_backend())'现在应该说TkAgg


Matplotlib似乎已经向1.2 版本的 Python 3迈进了一大步。 matplotlib 1.2.0rc2 (+ numpy 1.7.0b2)正在为我工​​作

  • Python 3.2.2(在Linux Mint 12上的virtualenv)
  • Python 3.3.0(从源代码本地安装)

在这两种情况下,matplotlib报告“TkAgg”作为后端使用。

不幸的是,我不知道这可能与金字塔有什么关系。


我一直在做python 3.3.2和matplotlib的源代码版本。 如上所述,TkAgg的作品。 如果你正在建立从源头上的一切:

  1. sudo apt-get install tk-dev
  2. 重建python3(make clean; ./configure; make)
  3. 清理matplotlib(从virtualenv中删除egg,从〜/ .config / matplotlib中删除缓存对象)
  4. 从源代码重建matplotlib(rm -r build /; python setup.py build; python setup.py install)

终于看到那个愚蠢的盒子弹出我的X = Y线。

小时 ....


我遇到了完全相同的问题,但经过很多努力,我设法使TkAgg工作(这是给_tkagg导入错误)。 有点晚,但有人可能会觉得它有用。

FWIW我解决了这个问题如下(使用TkAgg):

  • 从包管理器安装tk-dev
  • 从包管理器中重新安装 python3-tk
  • 从源代码重建和重新安装 matplotlib
  • (当然在matplotrc中设置TkAgg)

如果你认为你已经正确安装了tk-devpython3-tk ,你需要重建并重新安装matplotlib ,这样它_tkagg.pybackends目录中生成_tkagg.py

我在LM14上使用Python3.3(numpy 1.7)。 但我认为它应该在Ubuntu / Python3.2上工作







backend