[Matplotlib-devel] matplotlib limitations and design flaws

Eric Firing efiring at hawaii.edu
Wed Feb 10 02:29:56 EST 2016


On 2016/02/09 8:22 PM, Phillip Feldman wrote:
> Dear matplotlib developers (and users):
>
> I've expanded my web page "Python Limitations and Design Flaws" to
> include a good-size section on matplotlib (item number 3).  The URL is
> as follows:
>
> http://phillipmfeldman.org/Python/Python_Limitations.html
>
> All feedback other than flames is welcome!

Regarding the polar plot, you are correct that there is an odd situation 
where angles are input in radians and labeled in degrees, but I think 
your description is incorrect.  The inconsistency is entirely with the 
azimuth.  The radial labels are labeling the radial coordinate, which 
has whatever dimensions are appropriate for the data at hand, unlike the 
azimuth, which is dimensionless.  The radial coordinate is correctly 
labeled with the numbers you supplied.

Regarding the figure margin default: first, this presently applies only 
to the figure on screen, not to figures written to a file; and second, 
as soon as we get 2.0 out, the default will be for the margin to be 
white in both cases.

Regarding the "Plot titles are by default jammed against...", I don't 
think this is true for the full set of defaults, so I don't know what is 
leading you to this conclusion; but a genuine weakness is that we lack a 
layout engine, so tweaking of the sort you suggest is indeed needed all 
too often.

Regarding the positional arguments to contour and contourf: yes, this is 
an unfortunate result of the initial design of the pylab interface to be 
close to Matlab, so as to make it easy for Matlab users to switch.

Regarding your first point, "lack of uniformity among the interfaces": I 
think all of the developers would agree that this is a problem.  It 
arose from matplotlib's organic growth, and we are gradually trying to 
address it.

Regarding your very first point, "Block Comments", I agree that it would 
be nice to be able to use C-style /* and */, for example, but I find the 
lack to be a very minor point.  My workaround is to indent the block and 
insert the line "if False:" above it.

Eric

>
> Phillip
>
>
> _______________________________________________
> Matplotlib-devel mailing list
> Matplotlib-devel at python.org
> https://mail.python.org/mailman/listinfo/matplotlib-devel
>



More information about the Matplotlib-devel mailing list