我使用的比pyplot tutorial网站上的示例代码更简单:
import matplotlib.pyplot as plt
plt.plot([1,2,3,4,5])
plt.show()
但是当我运行它时,出现错误:
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
我使用的是Python 3.4.2,并重新安装了matplotlib,cairocfft> 0.6,numpy> = 1.6(来自pip)。
我尝试卸载cairocfft并从Arch存储库中获取
python-cairo
,但是现在出现错误:NotImplementedError: Surface.create_for_data: Not Implemented yet.
有没有一种方法可以绘制基本的折线图而不安装很多库?我不喜欢installing pyqt4推荐的this blogpost。 This github issue建议安装gi-cairo,但是gi-cairo不在Arch repositories上,我也无法在PyPI上找到它(我自己的搜索失败?)
我记得这在Python2上是轻而易举的,但是现在已经迁移到Python3。
最佳答案
这是为了防止有人在Ubuntu 14.04上遇到与我使用Python 3.4.3相同的问题。通过使用JDong的答案中的点点滴滴和提示,我解决了以下问题。 (基本上将MatPlotLib后端更改为qt5agg
。)
python3-pyqt5
。sudo apt-get install python3-pyqt5
matplotlibrc
文件在哪里,以便您对其进行编辑。可以在Python控制台中使用以下命令完成此操作。import matplotlibmatplotlib.matplotlib_fname()
matplotlibrc
文件(您可能需要sudo
),找到以backend :
开头的行,并将其更改为backend : qt5agg
。如果这样的行不存在,只需创建一个。 上面的步骤已经在Ubuntu 14.04上为我解决了。希望对您有所帮助。