我使用的东西比 pyplot tutorial 上的示例代码更简单。网站:
import matplotlib.pyplot as plt
plt.plot([1,2,3,4,5])
plt.show()
但是当我运行它时,我得到了错误:
TypeError: 找不到 'cairo.Context' 的外部结构转换器
我使用的是 Python 3.4.2,并且从 pip 重新安装了 matplotlib,cairocfft>0.6,numpy>=1.6。
我尝试卸载 cairocfft 并从 Arch 存储库中获取 python-cairo
,但现在出现错误:
NotImplementedError:Surface.create_for_data:尚未实现。
有没有办法在不安装很多库的情况下绘制基本的折线图?我对 installing pyqt4 不感兴趣,如 this blogpost建议。 This github issue建议安装 gi-cairo,但 Arch repositories 上没有 gi-cairo ,我在 PyPI 上也找不到(我自己的搜索失败了?)
我记得这在 Python2 上是轻而易举的事,但现在已经迁移到 Python3。
最佳答案
这是为了防止有人在 Ubuntu 14.04 上遇到与我使用 Python 3.4.3 相同的问题。通过使用 JDong 答案中的点点滴滴和提示,我已经解决了如下问题。 (基本上把 MatPlotLib 后端改成 qt5agg
。)
安装
python3-pyqt5
。sudo apt-get install python3-pyqt5
找出
matplotlibrc
文件的位置,以便进行编辑。这可以在 Python 控制台中使用以下命令来完成。导入 matplotlib matplotlib.matplotlib_fname()
编辑
matplotlibrc
文件(您可能需要sudo
),找到以backend :
开头的行,然后更改它到backend : qt5agg
。如果这样的行不存在,只需创建一个。
以上步骤在 Ubuntu 14.04 上为我解决了这个问题。我希望这会有所帮助。
关于Python matplotlib开罗错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27749664/