On 2013/07/20 11:47 AM, Chris Beaumont wrote:
> Hi,
>
> I thought I'd chime in on this discussion -- Adrian Price-Whelan and I
> put together plotornot during the SciPy sprints.
>
> I wouldn't advocate for linking to plotornot from matplotlib -- the idea
> is semi tongue-in-cheek, and meant to gauge to what extent there is
> consensus about plot styles. It's not set up to teach about rcParams,
> nor does it systematically explore all possible styles. The votes (>10K,
> last I checked) are saved, and eventually Adrian or I will look over the
> feedback and report back to you all. I haven't had time for that yet. I
> hope the name didn't *actually* offend anyone.
>
> At the risk of sounding unappreciative of MPL (which I love, and rely
> upon daily), I must admit I was disheartened after hearing the MPL devs
> at SciPy discuss styles and defaults. I understand that you don't want
> to change the default styles without a clearly better alternative. I
> also understand that, to some extent, style preferences are subjective.
> However, there seemed to be quite a bit of resistance to the idea that
> MPL defaults should change *at all.*
>
> Even if you ignore the subjective component of this (which I think is a
> mistake, since in my experience there is broad consensus that projects
> like ggplot2, d3, tableau, and spotfire do a "better" job than MPL at
> styling), there are some well-established visual principles that
> matplotlib violates. Some of my biggest pet peeves are:
>
> 1) The default 'axes.color_cycle' values should be equally visible, with
> similar luminance values. The current defaults (bgrcmyk) do not have
> this property -- c and y are harder to see, and thus carry less visual
> emphasis. A color table like the "Dark2" color brewer table
> (http://learnr.files.wordpress.com/2009/04/colours-dark2.png,
> colorbrewer2.org <http://colorbrewer2.org>) is more uniform, and
> carefully designed for visibility and contrast. 'rgbcmyk' is clearly an
> arbitrary choice -- why not use a smarter default?
>
> 2) The default 'jet' colormap for images has a lot of poor properties
> (which is even mentioned on the MPL docs at
> http://matplotlib.org/api/pyplot_summary.html#id1). The brain is bad at
> ordering changes in hue (which is bigger -- purple or yellow?), and
> better at ordering changes in intensity or saturation. A colleague of
> mine designed a visualization tool for doctors, and found that the
> rainbow color table had a dramatic negative effect on the effectiveness
> of the tool (you can watch her TED talk about this at
> https://www.youtube.com/watch?v=kU7veyGGps4&t=440s). The jet default is
> especially frustrating, since it *cannot* be modified via rcParams
>
> 3) Some of the defaults violate Tufte principles like minimizing "chart
> junk." For example, the 'stepfilled' mode for hist is probably better
> than the default, which draws vertical lines between every bin. Those
> lines make the histogram noisier -- do they convey any extra
> information? Again, this can't be tweaked via rcParams.
>
> Sorry for being long-winded -- I just want to make the case that this is
> an important (and not *entirely* subjective) issue. If nothing else, it
> would be great to see some clear statement about where the MPL devs
> stand on this issue -- what criteria must be met to consider a change to
> the defaults? My apologies if such a document already exists somewhere!
>
> Cheers,
> Chris Beaumont

Chris,

I appreciate the ideas, and I agree entirely that improvements are in 
order, so it is just a question of exactly what and how, not whether 
there should be changes.  (For example, the default line color set often 
irritates me, too, because blue and green look rather similar, 
particularly in comparison to red, which visually overwhelms the others.)

A problem with simply changing the defaults to some sort of consensus or 
majority opinion as to what is better is that inevitably there will be 
users who will be distressed when they upgrade and suddenly find that 
all their plots--perhaps generated automatically by their cron jobs or 
web apps--look very different, and perhaps don't even work well with the 
new defaults.  Therefore we have to be somewhat conservative, and the 
tendency is to minimize changes that are not essential.  I think that a 
change in the defaults will need to be staged in such a fashion that it 
will be as easy as possible for users to retain the old defaults if they 
prefer them.  That leads to the idea that something like a style toolkit 
or cookbook, or set of examples included with mpl, might be helpful. 
There is never going to be one good style for all; it would be good to 
have examples of how to tailor things for the screen, or for paper, or 
for presentations, or for publications (some of which still favor black 
and white).

The mpl examples (gallery) can be the first target for improvement; 
based on some experience and input, an actual change in the defaults 
might be announced and scheduled for some future release, with assurance 
that a matplotlibrc file for the old defaults will remain available for 
some interval.

Eric

------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&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