I can verify this on my end as well. To fix, here's what I did
sudo port install py25-matplotlib +cairo+gtk2
sudo port install py26-matplotlib +cairo+gtk2
Also, we need to change the default backend to a GUI based one.
Edit the file ~/.matplotlib/matplotlibrc, and add:
backend: GTKCairo
Also, you can try the following, which may allow you to not need the GTK or Cairo backends.
Edit ~/.matplotlib/matplotlibrc and add:
backend: MacOSX
With the port with those variants installed, this works as well, but it doesn't require X11.
By the way, the error that I saw was the following:
/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()))
I only had python 2.5 and I did not want to install python 2.6 on my mac. So I used different procedure mentioned in the following link to solve this problem:
1.) Start Spyder 2.3.5.2 from Anaconda Launcher
2.) Go to preferences -> IPython console -> Graphics -> Backend: changed it to "Automatic"
3.) Select "Apply" and close preferences
3.) Restart IPython kernel
4.) Create simple graphic like
Mac comes with its own python (read from here, which is not the best), I would suggest just a clean install of some Python 3.7 or so along with Anaconda and then introduce them as interpreters to PyCharm. anything will work fine and you wont need to add ad-hoc solutions like "backend: MacOSX" or so.
The reason this works is to do with interactive vs non-interactive mode. If the backend is opened in non-interactive mode, plt.show() is required at the end of the code chunk. You can check the status by calling plt.isinteractive() and toggle the status using plt.ion() and plt.ioff()
conda
The default python provided in (Ana)conda is not a framework build. However, a framework build can easily be installed, both in the main environment and in conda envs: install python.app (conda install python.app) and use pythonw rather than python.