I just want to double check before I commit this. We offer a font.size rc setting, and users can modify that size by setting fontsize='medium' or 'large', etc. However, font.size does not globally set the default font size, to axis labels, ticklabels, etc, they remain 12pt as default. Should this be changed? If so, the change is simple: from this: def __init__(self, size=12.0, weight='normal'): to this: def __init__(self, size=rcParams['font.size'], weight='normal'): Darren
>>>>> "Darren" == Darren Dale <dd...@co...> writes: Darren> I just want to double check before I commit this. We offer Darren> a font.size rc setting, and users can modify that size by Darren> setting fontsize='medium' or 'large', etc. However, Darren> font.size does not globally set the default font size, to Darren> axis labels, ticklabels, etc, they remain 12pt as Darren> default. Should this be changed? If so, the change is Darren> simple: from this: def __init__(self, size=12.0, Darren> weight='normal'): to this: def __init__(self, Darren> size=rcParams['font.size'], weight='normal'): If you want to use rc defaults for kwargs, you do not want to use them in the function definition, because then they will be set a module load time and the defaults cannot be changed dynamically. Rather, you want to use this idiom (eg lines.py) def __init__(self, xdata, ydata, linewidth = None, # all Nones default to rc ...): if linewidth is None : linewidth=rcParams['lines.linewidth'] Then if the user changes the rc param value, the constructor default changes too. JDH
On Thursday 09 February 2006 11:22, you wrote: > >>>>> "Darren" == Darren Dale <dd...@co...> writes: > > Darren> I just want to double check before I commit this. We offer > Darren> a font.size rc setting, and users can modify that size by > Darren> setting fontsize='medium' or 'large', etc. However, > Darren> font.size does not globally set the default font size, to > Darren> axis labels, ticklabels, etc, they remain 12pt as > Darren> default. Should this be changed? If so, the change is > Darren> simple: from this: def __init__(self, size=12.0, > Darren> weight='normal'): to this: def __init__(self, > Darren> size=rcParams['font.size'], weight='normal'): > > If you want to use rc defaults for kwargs, you do not want to use them > in the function definition, because then they will be set a module > load time and the defaults cannot be changed dynamically. Rather, you > want to use this idiom (eg lines.py) > > > def __init__(self, xdata, ydata, > linewidth = None, # all Nones default to rc > ...): > if linewidth is None : linewidth=rcParams['lines.linewidth'] > > Then if the user changes the rc param value, the constructor default > changes too. Ok. So currently a user can put font.size:23.0, or font.size:medium or even "large". The latter makes things very confusing, because who knows what the reference point is? (Its 12, but its not clear.) I propose the following change: font.defaultsize demands a point size, and then allow the relative font sizes to scale that size. Also, add a text.fontsize rc parameter to allow such scaling for text (this is what font.size does now, I think). Are these changes ok, or should I just leave everything alone? Darren
On Thursday 09 February 2006 11:31, you wrote: > I think there should be some global variable that makes it easy to > scale all the fonts, but how to do that and still give the user fine > control is challenging. There are 4 or 5 places where I have changed > the default font size for tickmarks, legend entries, etc. I have some > set at 18 pt, some at 16, and some at 14. I don't know if there is an > easy way to do all of this and make it possible to shift everything my > adjusting one setting. Does it make sense to allow the user to set > offset values - so that legend font is main-4 and tickmarks are > main-2? This is what I am trying to accomplish, using the existing scaling framework. Rather than "main + or - X", it multiplies main by one of the following: {'xx-small': 0.579, 'x-small': 0.694, 'small': 0.833, 'medium': 1.0, 'large': 1.200, 'x-large': 1.440, 'xx-large': 1.728} Darren
Sounds good to me. I guess when this is done I need an example rc file and a little info on how it should work. On 2/9/06, Darren Dale <dd...@co...> wrote: > On Thursday 09 February 2006 11:31, you wrote: > > I think there should be some global variable that makes it easy to > > scale all the fonts, but how to do that and still give the user fine > > control is challenging. There are 4 or 5 places where I have changed > > the default font size for tickmarks, legend entries, etc. I have some > > set at 18 pt, some at 16, and some at 14. I don't know if there is an > > easy way to do all of this and make it possible to shift everything my > > adjusting one setting. Does it make sense to allow the user to set > > offset values - so that legend font is main-4 and tickmarks are > > main-2? > > This is what I am trying to accomplish, using the existing scaling framew= ork. > Rather than "main + or - X", it multiplies main by one of the following: > > {'xx-small': 0.579, 'x-small': 0.694, 'small': 0.833, > 'medium': 1.0, 'large': 1.200, 'x-large': 1.440, > 'xx-large': 1.728} > > Darren >