Thanks for your help, Michiel.  Two follow up points, one concerning the OSX backend and one concerning the QT4 backend:
1) A colleague can reproduce the OSX problem we have talked about, but has never run into it before.  We have identical installs of python/matplotlib/etc through MacPorts, however his OSX plots pop up automatically without turning interactive plotting on (pyplot.ion()).  I did not have this behavior; show() was required to bring up a plot up until ion() was called.  A fresh install (see item 2) has "fixed" this behavior on my machine so that our two installs now behave identically.
2) With an understanding of the importance of a +framework install when using Python/MPL, I wiped my QT4 and pyqt4 installs (again, through MacPorts) and reinstalled.  I also reinstalled MPL.  Because I have been using all of them for some time, I had many old versions installed but not activated in MacPorts.  I removed every old version for all of the programs listed above and started from scratch.  I used the +framework variant (also, +quartz).  Everything seems to work smoothly now.  I'm not sure why; was it the fresh install?  was it the +framework variant?  This fresh install also seemed to change the MacOSX backend behavior, however I have done nothing different with how I installed MPL.

Hopefully, this info is useful to someone down the line.  Thanks again to Michiel for his clarifications and help with the OSX backend; it is one of the better backends if you are on a Mac!


On Wed, Mar 23, 2011 at 2:34 PM, Michiel de Hoon <> wrote:
OK, thanks. I got the same behavior using Python (instead of ipython).
Non-interactive usage has not yet been implemented in the MacOSX backend. We should be able to fix the bug that you found when implementing interactive/non-interactive usage for the MacOSX backend.


--- On Wed, 3/23/11, Daniel Welling <> wrote:

From: Daniel Welling <>
Subject: Re: [Matplotlib-users] Qt4 on OSX
To: "Michiel de Hoon" <>
Date: Wednesday, March 23, 2011, 12:27 PM

Greetings again, Michiel.  Please excuse my slow response time...

First, thanks for explaining the Framework stuff; it clarifies situation.  I'll be sure to never blame the OSX backend where it is not warranted!

Unfortunately (in terms of easy explanations):
In [3]: MacOS.WMAvailable()
Out[3]: True


Fortunately, I've been able to nail down the problem:
bash-3.2$ ipython
Python 2.6.6 (r266:84292, Jan 18 2011, 14:07:55) 
Type "copyright", "credits" or "license" for more information.

IPython 0.10.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. ?object also works, ?? prints more.

In [2]: import matplotlib.pyplot as plt
In [3]: plt.plot([0,1])
Out[3]: [<matplotlib.lines.Line2D object at 0x118c6be90>]
In [4]:
(Here, saving the plot works like normal.)
In [5]: plt.ion()
In [6]: plt.plot([0,1])
Out[6]: [<matplotlib.lines.Line2D object at 0x118c8bc90>]
(Now, when trying to save the plot, the "save" and "cancel" buttons no longer respond.  I must kill python from another terminal.)

So that's the situation with OSX.  It's something that comes up frequently enough (typically a quick plot turns into a more thorough customization followed by the lockup) that TK becomes a more viable option for me though OSX is faster and has better file navigation features.  Again, if QT4 was working, that is certainly my weapon of choice...

On Mon, Mar 21, 2011 at 7:14 AM, Michiel de Hoon <> wrote:
--- On Sun, 3/20/11, Daniel Welling <> wrote:
> The OSX backend used to have a bug where you cannot type a
> name in the file name text box.Since that has been fixed, ...
That was not a bug in the MacOSX backend (and therefore was not fixed), but is related to how Python is installed on your system: If your Python is not a framework installation, it will not interact correctly with Apple's windowing manager. This is due to OS X itself and is independent of the MacOSX backend.

I have found a new bug: every so often, when you go to save a file, the "save" and "cancel" button stop responding, trapping the user in file saving limbo.  I'll have to play with it again to figure out what triggers this.
Can you check if your Python is built as a framework? If it is, MacOS.WMAvailable() should return True:

$ python
Python 2.7.1 (r271:86832, Mar 12 2011, 13:44:53)
[GCC 4.0.1 (Apple Computer, Inc. build 5370)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import MacOS
>>> MacOS.WMAvailable()