Tom,

Thanks for https://github.com/matplotlib/matplotlib/pull/3587, which 
provides a concise draft implementation of your proposal, in concept if 
not in detail.

Although this provides a way to get interactive drawing while specifying 
axes and figures explicitly, it is still using two interfaces (your 
"interactive" function namespace plus the original OO methods) to do 
this instead of the single interface that I am suggesting (embedding the 
functionality in the OO methods).  One disadvantage is that when code is 
developed interactively, using your "interactive" namespace, more 
translation is required when the user wants to take the ipython history 
and edit it down to a module in which the OO interface is used.

Independently, your suggestion to use wrappers instead of boilerplate.py 
could be considered as a way to make pyplot.py shorter; historically, 
boilerplate.py was used because the versions of python available when 
mpl was being developed lacked the ability to do everything that needed 
to be done with wrappers.  I don't remember exactly what the sticking 
point was, but definitely there was one.

I still haven't seen a prohibitive objection to my original suggestion, 
which I think would involve minimal API change, and which directly 
addresses precisely the problems that I called out.  My own primary 
reservation about it is that it adds some complexity at the OO level, 
and as I said earlier, as a general rule, I want to see complexity 
reduced, not increased. Then the question is, can the added complexity 
be kept down to a low enough level that it is an acceptable tradeoff for 
the increased consistency and simplicity from the user's standpoint? 
I'm not sure; but I think it deserves consideration.

As a side note, there was an earlier attempt to address a different 
aspect of pyplot-OO convergence here: 
https://github.com/matplotlib/matplotlib/pull/1457.  It didn't work out, 
but it was in response to genuine pull from users.  Notice also the last 
paragraph of @pelson's comment in that PR--a testament to the real-world 
advantages of pyplot.

Eric

------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to