我正在运行Mac OSX 10.5.8。我使用macports安装了matplotlib。我从matplotlib库中得到了一些像这样的例子,没有修改:
http://matplotlib.sourceforge.net/examples/api/unicode_minus.html
我运行它,没有错误,但图片没有出现。在Linux Ubuntu中,我明白了。
你知道这里有什么不对吗?
由于
答案 0 :(得分:88)
我遇到了同样的问题,即使我看到一个新的应用程序窗口是如何创建并立即消失的。
简单的解决方案 - 只需检查您是否有
plt.show()
之后的情节
答案 1 :(得分:45)
我也可以在我的结尾验证这一点。要解决,这就是我做的事情
sudo port install py25-matplotlib +cairo+gtk2
sudo port install py26-matplotlib +cairo+gtk2
此外,我们需要将默认后端更改为基于GUI的。
编辑文件~/.matplotlib/matplotlibrc
,然后添加:
backend: GTKCairo
此外,您可以尝试以下操作,这可能允许您不需要GTK或Cairo后端。
修改~/.matplotlib/matplotlibrc
并添加:
backend: MacOSX
使用安装了这些变体的端口,这也可以,但它不需要X11。
顺便说一句,我看到的错误如下:
/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/backends/__init__.py:41: UserWarning:
Your currently selected backend, 'Agg' does not support show().
Please select a GUI backend in your matplotlibrc file ('/Users/wlynch/.matplotlib/matplotlibrc') or with matplotlib.use()
(backend, matplotlib.matplotlib_fname()))
答案 2 :(得分:36)
这对我有用。我刚刚更改了Matplotlib的导入
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
答案 3 :(得分:10)
当你尝试
时plt.savefig('myfilename.png')
而不是
plt.show()
是否在当前路径中保存了名为myfilename.png
的正确图像?
答案 4 :(得分:6)
情节之后,只需添加-
plt.show()
之所以起作用,是因为交互式与非交互式模式有关。如果后端以非交互方式打开,则在代码块末尾需要plt.show()
。您可以通过调用plt.isinteractive()
来检查状态,并使用plt.ion()
和plt.ioff()
答案 5 :(得分:3)
只是添加一个注释,
我的系统上没有matplotlibrc文件,我不得不从matplotlib网站下载一份副本。未来的用户可能也必须这样做。
答案 6 :(得分:3)
这对我有用:
brew install pkg-config
brew link pkg-config
brew install pygtk
brew install freetype
brew install libpng
sudo ln -s /usr/local/Cellar/freetype/*/lib/pkgconfig/freetype2.pc /usr/local/lib/pkgconfig/freetype2.pc
git clone git@github.com:matplotlib/matplotlib.git
cd matplotlib
python setup.py build
python setup.py install
参考文献:
http://blog.caoyuan.me/2012/08/matplotlib-error-mac-os-x/ http://matplotlib.org/faq/installing_faq.html#install-from-git http://www.tapir.caltech.edu/~dtsang/python.html
答案 7 :(得分:2)
我只有python 2.5,我不想在我的mac上安装python 2.6。所以我使用以下链接中提到的不同过程来解决这个问题:
http://www.gtkforums.com/viewtopic.php?f=3&t=54928
实际需要的是以下步骤:
1)搜索目录“pygtk-2.0.pc”并找到它。例如,我的位于以下目录:
的/ opt / local / lib目录/ pkgconfig
2)将路径信息添加到envirement变量。例如:
PKG_CONFIG_PATH=/opt/local/lib/pkgconfig
export PKG_CONFIG_PATH
3)从matplotlib网站下载配置信息文件“matplotlibrc” http://matplotlib.sourceforge.net/_static/matplotlibrc
4)将后端更改为文件中的MacOSX并保存
5)将文件复制到目录.matplotlib 您可以通过以下命令在python中找到目录:
import matplotlib
matplotlib.get_configdir()
答案 8 :(得分:1)
Mac带有自己的python(read from here,这不是最好的),我建议您随Anaconda一起干净安装一些Python 3.7左右,然后将其作为解释器引入PyCharm。一切都可以正常工作,您无需添加“后端:MacOSX”之类的临时解决方案。
答案 9 :(得分:0)
如果有人使用spyder,请执行以下操作。
1。)从Anaconda Launcher启动Spyder 2.3.5.2 2.)转到首选项 - > IPython控制台 - >图形 - >后端:将其更改为“自动” 3.)选择“应用”并关闭首选项 3.)重启IPython内核 4.)创建简单的图形,如
答案 10 :(得分:0)
作为一项临时工作,可以将图形保存到.png / .jpg / .pdf并暂时使用该文件。
## assuming price is out DataFrame that contains columns that we want to plot
pdf_plot=price.plot().get_figure()
pdf_plot.savefig('Stocks.pdf')
答案 11 :(得分:0)
sudo port install py37-matplotlib +cairo+gtk3
~/.matplotlib/matplotlibrc used
backend: MacOSX
似乎可以在上面unicode_minus.py example上的python 3.7的MacOS Mojave 10.14.4上运行。
答案 12 :(得分:0)
我想为我分享这个可行的解决方案,
import matplotlib
import platform
if platform.system() == 'Darwin':
matplotlib.use('MacOSX')