> > Tony S Yu wrote: >> On Dec 29, 2009, at 3:35 AM, Dominik Szczerba wrote: >>> Tony S Yu wrote: >>>> Hey Dominik, >>>> >>>> I'd also like to see the default color_cycle be customizeable. But, if >>>> I'm not mistaken, this approach doesn't quite do what you want (at least >>>> it doesn't on a recent version of mpl). The problem is that the color >>>> given by lines.color (rcParam) sort of overrides the first color in the >>>> specified color cycle (see >>>> ``_process_plot_var_args._clear_color_cycle`` in axes.py). >>>> >>>> It seems important for lines.color and the first color in the color >>>> cycle to match since this matching is also enforced in >>>> ``axes.set_default_color_cycle``, except in reverse (the first color in >>>> the color cycle overrides line.color). If both lines.color and >>>> axes.color_cycle (or maybe lines.color_cycle) are rcParams, there would >>>> be issues with how to match the two (e.g. which takes precedence if they >>>> differ). >>>> >>>> As I said earlier, I'd like to see this change made, but I think it may >>>> change the current behavior. Maybe a mpl developer could weigh in? >>>> >>>> -Tony >>> Hi Tony, >>> You are correct, line color overrides the first cycle color. That does >>> not appear a very happy choice to me but this way or another you can >>> still specify BOTH lines.color and the cycle in the param file to get >>> whatever you want, no? >>> >>> Dominik >> >> Yup, that should do exactly what you want. But, since it's a bit of a hack >> (you should only need to make 1 change to matplotlibrc), I doubt this patch >> would be appropriate for the main distribution. >> >> Ideally, we'd need to figure out if the matplotlibrc changes 1) only >> lines.color and make this the first color in color_cycle, 2) only >> lines.color_cycle and make the first color override lines.color, or 3) both >> lines.color and lines.color_cycle (behavior unknown if colors don't match). >> Unfortunately, I don't see an easy way to tell if rcParams have been changed >> from their default values. > > Hi Tony, > My patches (there were two!) remove the badly hardcoded definition of > defaultColors in axes.py and instead define default axes.color_cycle in > rcsetup.py (defaulting it to the already established color array > ['b','g','r','c','m','y','k']). Now, in axes.py, defaultColors are taken > from rcParams, and not a hardcoded array, so unless you modify your own > rc file, you will get the old behavior. It is if and only if you define > your color_cycle in your own rc file that will do anything new. I do not > see how this introduces any incompatibilities. > Dominik
Sorry for the confusion. I wasn't saying your patches introduce incompatibilities, but I did say that their behavior is not ideal. For example, your matplotlibrc requires *both* "lines.color_cycle : w, w, w, w, w, w" (actually I think you only need one "w,") *and* "lines.color : w". Ideally (at least IMO), I should only need to set the color cycle, and it was surprising to me (surprises = bad) that I'd have to also set "lines.color" The incompatibilities I spoke of would only be true if you went with my suggestion to deprecate "lines.color". -T
------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users