From: <md...@us...> - 2007-12-18 21:09:30
|
Revision: 4772 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4772&view=rev Author: mdboom Date: 2007-12-18 13:09:25 -0800 (Tue, 18 Dec 2007) Log Message: ----------- Better docstrings for set_x/yscale and friends. Modified Paths: -------------- branches/transforms/lib/matplotlib/axes.py branches/transforms/lib/matplotlib/pyplot.py branches/transforms/lib/matplotlib/scale.py Modified: branches/transforms/lib/matplotlib/axes.py =================================================================== --- branches/transforms/lib/matplotlib/axes.py 2007-12-18 21:08:19 UTC (rev 4771) +++ branches/transforms/lib/matplotlib/axes.py 2007-12-18 21:09:25 UTC (rev 4772) @@ -1651,25 +1651,18 @@ ", ".join(mscale.get_scale_names())) return self.xaxis.get_scale() - # MGDTODO: Update docstring def set_xscale(self, value, **kwargs): """ SET_XSCALE(value) - Set the xscaling: %(scale)s + Set the scaling of the x-axis: %(scale)s - If value is 'log', the additional kwargs have the following meaning - - * basex: base of the logarithm - - * subsx: a sequence of the location of the minor ticks; - None defaults to autosubs, which depend on the number of - decades in the plot. Eg for base 10, subsx=(1,2,5) will - put minor ticks on 1,2,5,11,12,15,21, ....To turn off - minor ticking, set subsx=[] - ACCEPTS: [%(scale)s] - """ % {'scale': ' | '.join([repr(x) for x in mscale.get_scale_names()])} + + Different kwargs are accepted, depending on the scale: + %(scale_docs)s + """ % {'scale': ' | '.join([repr(x) for x in mscale.get_scale_names()]), + 'scale_docs': mscale.get_scale_docs().strip()} self.xaxis.set_scale(value, **kwargs) self.autoscale_view() self._update_transScale() @@ -1815,22 +1808,16 @@ def set_yscale(self, value, **kwargs): """ - SET_YSCALE(value, basey=10, subsy=None) + SET_YSCALE(value) - Set the yscaling: %(scale)s + Set the scaling of the y-axis: %(scale)s - If value is 'log', the additional kwargs have the following meaning + ACCEPTS: [%(scale)s] - * basey: base of the logarithm - - * subsy: a sequence of the location of the minor ticks; - None defaults to autosubs, which depend on the number of - decades in the plot. Eg for base 10, subsy=(1,2,5) will - put minor ticks on 1,2,5,11,12,15, 21, ....To turn off - minor ticking, set subsy=[] - - ACCEPTS: %(scale)s - """ % {'scale': ' | '.join([repr(x) for x in mscale.get_scale_names()])} + Different kwargs are accepted, depending on the scale: + %(scale_docs)s + """ % {'scale': ' | '.join([repr(x) for x in mscale.get_scale_names()]), + 'scale_docs': mscale.get_scale_docs().strip()} self.yaxis.set_scale(value, **kwargs) self.autoscale_view() self._update_transScale() Modified: branches/transforms/lib/matplotlib/pyplot.py =================================================================== --- branches/transforms/lib/matplotlib/pyplot.py 2007-12-18 21:08:19 UTC (rev 4771) +++ branches/transforms/lib/matplotlib/pyplot.py 2007-12-18 21:09:25 UTC (rev 4772) @@ -12,7 +12,7 @@ from matplotlib.axes import Axes from matplotlib.projections import PolarAxes from matplotlib import mlab # for csv2rec in plotfile -from matplotlib.scale import get_scale_names +from matplotlib.scale import get_scale_docs, get_scale_names from matplotlib import cm from matplotlib.cm import get_cmap @@ -727,26 +727,34 @@ return ret -# MGDTODO: Update docstring def xscale(*args, **kwargs): """ SET_XSCALE(value) - Set the xscaling: %(scale)s - """ % {'scale': ' | '.join([repr(x) for x in get_scale_names()])} + Set the scaling for the x-axis: %(scale)s + + Different keywords may be accepted, depending on the scale: + + %(scale_docs)s + """ % {'scale': ' | '.join([repr(x) for x in get_scale_names()]), + 'scale_docs': get_scale_docs()} ax = gca() ret = ax.set_xscale(*args, **kwargs) draw_if_interactive() return ret -# MGDTODO: Update docstring def yscale(*args, **kwargs): """ SET_YSCALE(value) - Set the yscaling: %(scale)s - """ % {'scale': ' | '.join([repr(x) for x in get_scale_names()])} + Set the scaling for the y-axis: %(scale)s + + Different keywords may be accepted, depending on the scale: + + %(scale_docs)s + """ % {'scale': ' | '.join([repr(x) for x in get_scale_names()]), + 'scale_docs': get_scale_docs()} ax = gca() ret = ax.set_yscale(*args, **kwargs) draw_if_interactive() Modified: branches/transforms/lib/matplotlib/scale.py =================================================================== --- branches/transforms/lib/matplotlib/scale.py 2007-12-18 21:08:19 UTC (rev 4771) +++ branches/transforms/lib/matplotlib/scale.py 2007-12-18 21:09:25 UTC (rev 4772) @@ -1,3 +1,4 @@ +import textwrap import numpy as npy from matplotlib.numerix import npyma as ma MaskedArray = ma.MaskedArray @@ -2,2 +3,3 @@ +from cbook import dedent from ticker import NullFormatter, ScalarFormatter, LogFormatterMathtext, Formatter @@ -30,6 +32,8 @@ name = 'linear' def __init__(self, axis, **kwargs): + """ + """ pass def set_default_locators_and_formatters(self, axis): @@ -167,6 +171,12 @@ def __init__(self, axis, **kwargs): + """ + basex/basey: The base of the logarithm + + subsx/subsy: The number of subticks to draw between each major + tick + """ if axis.axis_name == 'x': base = kwargs.pop('basex', 10.0) subs = kwargs.pop('subsx', None) @@ -262,6 +272,16 @@ return SymmetricalLogScale.SymmetricalLogTransform(self.base) def __init__(self, axis, **kwargs): + """ + basex/basey: The base of the logarithm + + linthreshx/linthreshy: The range (-x, x) within which the plot + is linear (to avoid having the plot go to infinity around + zero). + + subsx/subsy: The number of subticks to render between each + major tick. + """ if axis.axis_name == 'x': base = kwargs.pop('basex', 10.0) linthresh = kwargs.pop('linthreshx', 2.0) @@ -342,6 +362,9 @@ return MercatorLatitudeScale.MercatorLatitudeTransform(self.thresh) def __init__(self, axis, **kwargs): + """ + thresh: The degree above which to crop the data. + """ thresh = kwargs.pop("thresh", (85 / 180.0) * npy.pi) if thresh >= npy.pi / 2.0: raise ValueError("thresh must be less than pi/2") @@ -393,3 +416,16 @@ names = _scale_mapping.keys() names.sort() return names + +def get_scale_docs(): + docs = [] + for name in get_scale_names(): + scale_class = _scale_mapping[name] + docs.append(" '%s'" % name) + docs.append("") + class_docs = textwrap.wrap( + dedent(scale_class.__init__.__doc__), initial_indent=" " * 8, + subsequent_indent = " " * 8) + docs.extend(class_docs) + docs.append("") + return "\n".join(docs) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |