diff options
author | sotech117 <michael_foiani@brown.edu> | 2025-07-31 17:27:24 -0400 |
---|---|---|
committer | sotech117 <michael_foiani@brown.edu> | 2025-07-31 17:27:24 -0400 |
commit | 5bf22fc7e3c392c8bd44315ca2d06d7dca7d084e (patch) | |
tree | 8dacb0f195df1c0788d36dd0064f6bbaa3143ede /venv/lib/python3.8/site-packages/plotly/express/_doc.py | |
parent | b832d364da8c2efe09e3f75828caf73c50d01ce3 (diff) |
add code for analysis of data
Diffstat (limited to 'venv/lib/python3.8/site-packages/plotly/express/_doc.py')
-rw-r--r-- | venv/lib/python3.8/site-packages/plotly/express/_doc.py | 640 |
1 files changed, 640 insertions, 0 deletions
diff --git a/venv/lib/python3.8/site-packages/plotly/express/_doc.py b/venv/lib/python3.8/site-packages/plotly/express/_doc.py new file mode 100644 index 0000000..59faac4 --- /dev/null +++ b/venv/lib/python3.8/site-packages/plotly/express/_doc.py @@ -0,0 +1,640 @@ +import inspect +from textwrap import TextWrapper + +try: + getfullargspec = inspect.getfullargspec +except AttributeError: # python 2 + getfullargspec = inspect.getargspec + + +colref_type = "str or int or Series or array-like" +colref_desc = "Either a name of a column in `data_frame`, or a pandas Series or array_like object." +colref_list_type = "list of str or int, or Series or array-like" +colref_list_desc = ( + "Either names of columns in `data_frame`, or pandas Series, or array_like objects" +) + +docs = dict( + data_frame=[ + "DataFrame or array-like or dict", + "This argument needs to be passed for column names (and not keyword names) to be used.", + "Array-like and dict are transformed internally to a pandas DataFrame.", + "Optional: if missing, a DataFrame gets constructed under the hood using the other arguments.", + ], + x=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to position marks along the x axis in cartesian coordinates.", + ], + y=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to position marks along the y axis in cartesian coordinates.", + ], + z=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to position marks along the z axis in cartesian coordinates.", + ], + x_start=[ + colref_type, + colref_desc, + "(required)", + "Values from this column or array_like are used to position marks along the x axis in cartesian coordinates.", + ], + x_end=[ + colref_type, + colref_desc, + "(required)", + "Values from this column or array_like are used to position marks along the x axis in cartesian coordinates.", + ], + a=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to position marks along the a axis in ternary coordinates.", + ], + b=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to position marks along the b axis in ternary coordinates.", + ], + c=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to position marks along the c axis in ternary coordinates.", + ], + r=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to position marks along the radial axis in polar coordinates.", + ], + theta=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to position marks along the angular axis in polar coordinates.", + ], + values=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to set values associated to sectors.", + ], + parents=[ + colref_type, + colref_desc, + "Values from this column or array_like are used as parents in sunburst and treemap charts.", + ], + ids=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to set ids of sectors", + ], + path=[ + colref_list_type, + colref_list_desc, + "List of columns names or columns of a rectangular dataframe defining the hierarchy of sectors, from root to leaves.", + "An error is raised if path AND ids or parents is passed", + ], + lat=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to position marks according to latitude on a map.", + ], + lon=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to position marks according to longitude on a map.", + ], + locations=[ + colref_type, + colref_desc, + "Values from this column or array_like are to be interpreted according to `locationmode` and mapped to longitude/latitude.", + ], + base=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to position the base of the bar.", + ], + dimensions=[ + colref_list_type, + colref_list_desc, + "Values from these columns are used for multidimensional visualization.", + ], + dimensions_max_cardinality=[ + "int (default 50)", + "When `dimensions` is `None` and `data_frame` is provided, " + "columns with more than this number of unique values are excluded from the output.", + "Not used when `dimensions` is passed.", + ], + error_x=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to size x-axis error bars.", + "If `error_x_minus` is `None`, error bars will be symmetrical, otherwise `error_x` is used for the positive direction only.", + ], + error_x_minus=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to size x-axis error bars in the negative direction.", + "Ignored if `error_x` is `None`.", + ], + error_y=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to size y-axis error bars.", + "If `error_y_minus` is `None`, error bars will be symmetrical, otherwise `error_y` is used for the positive direction only.", + ], + error_y_minus=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to size y-axis error bars in the negative direction.", + "Ignored if `error_y` is `None`.", + ], + error_z=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to size z-axis error bars.", + "If `error_z_minus` is `None`, error bars will be symmetrical, otherwise `error_z` is used for the positive direction only.", + ], + error_z_minus=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to size z-axis error bars in the negative direction.", + "Ignored if `error_z` is `None`.", + ], + color=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to assign color to marks.", + ], + opacity=["float", "Value between 0 and 1. Sets the opacity for markers."], + line_dash=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to assign dash-patterns to lines.", + ], + line_group=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to group rows of `data_frame` into lines.", + ], + symbol=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to assign symbols to marks.", + ], + pattern_shape=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to assign pattern shapes to marks.", + ], + size=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to assign mark sizes.", + ], + radius=["int (default is 30)", "Sets the radius of influence of each point."], + hover_name=[ + colref_type, + colref_desc, + "Values from this column or array_like appear in bold in the hover tooltip.", + ], + hover_data=[ + "str, or list of str or int, or Series or array-like, or dict", + "Either a name or list of names of columns in `data_frame`, or pandas Series,", + "or array_like objects", + "or a dict with column names as keys, with values True (for default formatting)", + "False (in order to remove this column from hover information),", + "or a formatting string, for example ':.3f' or '|%a'", + "or list-like data to appear in the hover tooltip", + "or tuples with a bool or formatting string as first element,", + "and list-like data to appear in hover as second element", + "Values from these columns appear as extra data in the hover tooltip.", + ], + custom_data=[ + "str, or list of str or int, or Series or array-like", + "Either name or list of names of columns in `data_frame`, or pandas Series, or array_like objects", + "Values from these columns are extra data, to be used in widgets or Dash callbacks for example. This data is not user-visible but is included in events emitted by the figure (lasso selection etc.)", + ], + text=[ + colref_type, + colref_desc, + "Values from this column or array_like appear in the figure as text labels.", + ], + names=[ + colref_type, + colref_desc, + "Values from this column or array_like are used as labels for sectors.", + ], + locationmode=[ + "str", + "One of 'ISO-3', 'USA-states', or 'country names'", + "Determines the set of locations used to match entries in `locations` to regions on the map.", + ], + facet_row=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to assign marks to facetted subplots in the vertical direction.", + ], + facet_col=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to assign marks to facetted subplots in the horizontal direction.", + ], + facet_col_wrap=[ + "int", + "Maximum number of facet columns.", + "Wraps the column variable at this width, so that the column facets span multiple rows.", + "Ignored if 0, and forced to 0 if `facet_row` or a `marginal` is set.", + ], + facet_row_spacing=[ + "float between 0 and 1", + "Spacing between facet rows, in paper units. Default is 0.03 or 0.07 when facet_col_wrap is used.", + ], + facet_col_spacing=[ + "float between 0 and 1", + "Spacing between facet columns, in paper units Default is 0.02.", + ], + animation_frame=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to assign marks to animation frames.", + ], + animation_group=[ + colref_type, + colref_desc, + "Values from this column or array_like are used to provide object-constancy across animation frames: rows with matching `animation_group`s will be treated as if they describe the same object in each frame.", + ], + symbol_sequence=[ + "list of str", + "Strings should define valid plotly.js symbols.", + "When `symbol` is set, values in that column are assigned symbols by cycling through `symbol_sequence` in the order described in `category_orders`, unless the value of `symbol` is a key in `symbol_map`.", + ], + symbol_map=[ + "dict with str keys and str values (default `{}`)", + "String values should define plotly.js symbols", + "Used to override `symbol_sequence` to assign a specific symbols to marks corresponding with specific values.", + "Keys in `symbol_map` should be values in the column denoted by `symbol`.", + "Alternatively, if the values of `symbol` are valid symbol names, the string `'identity'` may be passed to cause them to be used directly.", + ], + line_dash_map=[ + "dict with str keys and str values (default `{}`)", + "Strings values define plotly.js dash-patterns.", + "Used to override `line_dash_sequences` to assign a specific dash-patterns to lines corresponding with specific values.", + "Keys in `line_dash_map` should be values in the column denoted by `line_dash`.", + "Alternatively, if the values of `line_dash` are valid line-dash names, the string `'identity'` may be passed to cause them to be used directly.", + ], + line_dash_sequence=[ + "list of str", + "Strings should define valid plotly.js dash-patterns.", + "When `line_dash` is set, values in that column are assigned dash-patterns by cycling through `line_dash_sequence` in the order described in `category_orders`, unless the value of `line_dash` is a key in `line_dash_map`.", + ], + pattern_shape_map=[ + "dict with str keys and str values (default `{}`)", + "Strings values define plotly.js patterns-shapes.", + "Used to override `pattern_shape_sequences` to assign a specific patterns-shapes to lines corresponding with specific values.", + "Keys in `pattern_shape_map` should be values in the column denoted by `pattern_shape`.", + "Alternatively, if the values of `pattern_shape` are valid patterns-shapes names, the string `'identity'` may be passed to cause them to be used directly.", + ], + pattern_shape_sequence=[ + "list of str", + "Strings should define valid plotly.js patterns-shapes.", + "When `pattern_shape` is set, values in that column are assigned patterns-shapes by cycling through `pattern_shape_sequence` in the order described in `category_orders`, unless the value of `pattern_shape` is a key in `pattern_shape_map`.", + ], + color_discrete_sequence=[ + "list of str", + "Strings should define valid CSS-colors.", + "When `color` is set and the values in the corresponding column are not numeric, values in that column are assigned colors by cycling through `color_discrete_sequence` in the order described in `category_orders`, unless the value of `color` is a key in `color_discrete_map`.", + "Various useful color sequences are available in the `plotly.express.colors` submodules, specifically `plotly.express.colors.qualitative`.", + ], + color_discrete_map=[ + "dict with str keys and str values (default `{}`)", + "String values should define valid CSS-colors", + "Used to override `color_discrete_sequence` to assign a specific colors to marks corresponding with specific values.", + "Keys in `color_discrete_map` should be values in the column denoted by `color`.", + "Alternatively, if the values of `color` are valid colors, the string `'identity'` may be passed to cause them to be used directly.", + ], + color_continuous_scale=[ + "list of str", + "Strings should define valid CSS-colors", + "This list is used to build a continuous color scale when the column denoted by `color` contains numeric data.", + "Various useful color scales are available in the `plotly.express.colors` submodules, specifically `plotly.express.colors.sequential`, `plotly.express.colors.diverging` and `plotly.express.colors.cyclical`.", + ], + color_continuous_midpoint=[ + "number (default `None`)", + "If set, computes the bounds of the continuous color scale to have the desired midpoint.", + "Setting this value is recommended when using `plotly.express.colors.diverging` color scales as the inputs to `color_continuous_scale`.", + ], + size_max=["int (default `20`)", "Set the maximum mark size when using `size`."], + markers=["boolean (default `False`)", "If `True`, markers are shown on lines."], + lines=[ + "boolean (default `True`)", + "If `False`, lines are not drawn (forced to `True` if `markers` is `False`).", + ], + log_x=[ + "boolean (default `False`)", + "If `True`, the x-axis is log-scaled in cartesian coordinates.", + ], + log_y=[ + "boolean (default `False`)", + "If `True`, the y-axis is log-scaled in cartesian coordinates.", + ], + log_z=[ + "boolean (default `False`)", + "If `True`, the z-axis is log-scaled in cartesian coordinates.", + ], + log_r=[ + "boolean (default `False`)", + "If `True`, the radial axis is log-scaled in polar coordinates.", + ], + range_x=[ + "list of two numbers", + "If provided, overrides auto-scaling on the x-axis in cartesian coordinates.", + ], + range_y=[ + "list of two numbers", + "If provided, overrides auto-scaling on the y-axis in cartesian coordinates.", + ], + range_z=[ + "list of two numbers", + "If provided, overrides auto-scaling on the z-axis in cartesian coordinates.", + ], + range_color=[ + "list of two numbers", + "If provided, overrides auto-scaling on the continuous color scale.", + ], + range_r=[ + "list of two numbers", + "If provided, overrides auto-scaling on the radial axis in polar coordinates.", + ], + range_theta=[ + "list of two numbers", + "If provided, overrides auto-scaling on the angular axis in polar coordinates.", + ], + title=["str", "The figure title."], + subtitle=["str", "The figure subtitle."], + template=[ + "str or dict or plotly.graph_objects.layout.Template instance", + "The figure template name (must be a key in plotly.io.templates) or definition.", + ], + width=["int (default `None`)", "The figure width in pixels."], + height=["int (default `None`)", "The figure height in pixels."], + labels=[ + "dict with str keys and str values (default `{}`)", + "By default, column names are used in the figure for axis titles, legend entries and hovers.", + "This parameter allows this to be overridden.", + "The keys of this dict should correspond to column names, and the values should correspond to the desired label to be displayed.", + ], + category_orders=[ + "dict with str keys and list of str values (default `{}`)", + "By default, in Python 3.6+, the order of categorical values in axes, legends and facets depends on the order in which these values are first encountered in `data_frame` (and no order is guaranteed by default in Python below 3.6).", + "This parameter is used to force a specific ordering of values per column.", + "The keys of this dict should correspond to column names, and the values should be lists of strings corresponding to the specific display order desired.", + ], + marginal=[ + "str", + "One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`.", + "If set, a subplot is drawn alongside the main plot, visualizing the distribution.", + ], + marginal_x=[ + "str", + "One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`.", + "If set, a horizontal subplot is drawn above the main plot, visualizing the x-distribution.", + ], + marginal_y=[ + "str", + "One of `'rug'`, `'box'`, `'violin'`, or `'histogram'`.", + "If set, a vertical subplot is drawn to the right of the main plot, visualizing the y-distribution.", + ], + trendline=[ + "str", + "One of `'ols'`, `'lowess'`, `'rolling'`, `'expanding'` or `'ewm'`.", + "If `'ols'`, an Ordinary Least Squares regression line will be drawn for each discrete-color/symbol group.", + "If `'lowess`', a Locally Weighted Scatterplot Smoothing line will be drawn for each discrete-color/symbol group.", + "If `'rolling`', a Rolling (e.g. rolling average, rolling median) line will be drawn for each discrete-color/symbol group.", + "If `'expanding`', an Expanding (e.g. expanding average, expanding sum) line will be drawn for each discrete-color/symbol group.", + "If `'ewm`', an Exponentially Weighted Moment (e.g. exponentially-weighted moving average) line will be drawn for each discrete-color/symbol group.", + "See the docstrings for the functions in `plotly.express.trendline_functions` for more details on these functions and how", + "to configure them with the `trendline_options` argument.", + ], + trendline_options=[ + "dict", + "Options passed as the first argument to the function from `plotly.express.trendline_functions` ", + "named in the `trendline` argument.", + ], + trendline_color_override=[ + "str", + "Valid CSS color.", + "If provided, and if `trendline` is set, all trendlines will be drawn in this color rather than in the same color as the traces from which they draw their inputs.", + ], + trendline_scope=[ + "str (one of `'trace'` or `'overall'`, default `'trace'`)", + "If `'trace'`, then one trendline is drawn per trace (i.e. per color, symbol, facet, animation frame etc) and if `'overall'` then one trendline is computed for the entire dataset, and replicated across all facets.", + ], + render_mode=[ + "str", + "One of `'auto'`, `'svg'` or `'webgl'`, default `'auto'`", + "Controls the browser API used to draw marks.", + "`'svg'` is appropriate for figures of less than 1000 data points, and will allow for fully-vectorized output.", + "`'webgl'` is likely necessary for acceptable performance above 1000 points but rasterizes part of the output. ", + "`'auto'` uses heuristics to choose the mode.", + ], + direction=[ + "str", + "One of '`counterclockwise'` or `'clockwise'`. Default is `'clockwise'`", + "Sets the direction in which increasing values of the angular axis are drawn.", + ], + start_angle=[ + "int (default `90`)", + "Sets start angle for the angular axis, with 0 being due east and 90 being due north.", + ], + histfunc=[ + "str (default `'count'` if no arguments are provided, else `'sum'`)", + "One of `'count'`, `'sum'`, `'avg'`, `'min'`, or `'max'`.", + "Function used to aggregate values for summarization (note: can be normalized with `histnorm`).", + ], + histnorm=[ + "str (default `None`)", + "One of `'percent'`, `'probability'`, `'density'`, or `'probability density'`", + "If `None`, the output of `histfunc` is used as is.", + "If `'probability'`, the output of `histfunc` for a given bin is divided by the sum of the output of `histfunc` for all bins.", + "If `'percent'`, the output of `histfunc` for a given bin is divided by the sum of the output of `histfunc` for all bins and multiplied by 100.", + "If `'density'`, the output of `histfunc` for a given bin is divided by the size of the bin.", + "If `'probability density'`, the output of `histfunc` for a given bin is normalized such that it corresponds to the probability that a random event whose distribution is described by the output of `histfunc` will fall into that bin.", + ], + barnorm=[ + "str (default `None`)", + "One of `'fraction'` or `'percent'`.", + "If `'fraction'`, the value of each bar is divided by the sum of all values at that location coordinate.", + "`'percent'` is the same but multiplied by 100 to show percentages.", + "`None` will stack up all values at each location coordinate.", + ], + groupnorm=[ + "str (default `None`)", + "One of `'fraction'` or `'percent'`.", + "If `'fraction'`, the value of each point is divided by the sum of all values at that location coordinate.", + "`'percent'` is the same but multiplied by 100 to show percentages.", + "`None` will stack up all values at each location coordinate.", + ], + barmode=[ + "str (default `'relative'`)", + "One of `'group'`, `'overlay'` or `'relative'`", + "In `'relative'` mode, bars are stacked above zero for positive values and below zero for negative values.", + "In `'overlay'` mode, bars are drawn on top of one another.", + "In `'group'` mode, bars are placed beside each other.", + ], + boxmode=[ + "str (default `'group'`)", + "One of `'group'` or `'overlay'`", + "In `'overlay'` mode, boxes are on drawn top of one another.", + "In `'group'` mode, boxes are placed beside each other.", + ], + violinmode=[ + "str (default `'group'`)", + "One of `'group'` or `'overlay'`", + "In `'overlay'` mode, violins are on drawn top of one another.", + "In `'group'` mode, violins are placed beside each other.", + ], + stripmode=[ + "str (default `'group'`)", + "One of `'group'` or `'overlay'`", + "In `'overlay'` mode, strips are on drawn top of one another.", + "In `'group'` mode, strips are placed beside each other.", + ], + zoom=["int (default `8`)", "Between 0 and 20.", "Sets map zoom level."], + orientation=[ + "str, one of `'h'` for horizontal or `'v'` for vertical. ", + "(default `'v'` if `x` and `y` are provided and both continuous or both categorical, ", + "otherwise `'v'`(`'h'`) if `x`(`y`) is categorical and `y`(`x`) is continuous, ", + "otherwise `'v'`(`'h'`) if only `x`(`y`) is provided) ", + ], + line_close=[ + "boolean (default `False`)", + "If `True`, an extra line segment is drawn between the first and last point.", + ], + line_shape=[ + "str (default `'linear'`)", + "One of `'linear'`, `'spline'`, `'hv'`, `'vh'`, `'hvh'`, or `'vhv'`", + ], + fitbounds=["str (default `False`).", "One of `False`, `locations` or `geojson`."], + basemap_visible=["bool", "Force the basemap visibility."], + scope=[ + "str (default `'world'`).", + "One of `'world'`, `'usa'`, `'europe'`, `'asia'`, `'africa'`, `'north america'`, or `'south america'`" + "Default is `'world'` unless `projection` is set to `'albers usa'`, which forces `'usa'`.", + ], + projection=[ + "str ", + "One of `'equirectangular'`, `'mercator'`, `'orthographic'`, `'natural earth'`, `'kavrayskiy7'`, `'miller'`, `'robinson'`, `'eckert4'`, `'azimuthal equal area'`, `'azimuthal equidistant'`, `'conic equal area'`, `'conic conformal'`, `'conic equidistant'`, `'gnomonic'`, `'stereographic'`, `'mollweide'`, `'hammer'`, `'transverse mercator'`, `'albers usa'`, `'winkel tripel'`, `'aitoff'`, or `'sinusoidal'`" + "Default depends on `scope`.", + ], + center=[ + "dict", + "Dict keys are `'lat'` and `'lon'`", + "Sets the center point of the map.", + ], + map_style=[ + "str (default `'basic'`)", + "Identifier of base map style.", + "Allowed values are `'basic'`, `'carto-darkmatter'`, `'carto-darkmatter-nolabels'`, `'carto-positron'`, `'carto-positron-nolabels'`, `'carto-voyager'`, `'carto-voyager-nolabels'`, `'dark'`, `'light'`, `'open-street-map'`, `'outdoors'`, `'satellite'`, `'satellite-streets'`, `'streets'`, `'white-bg'`.", + ], + mapbox_style=[ + "str (default `'basic'`, needs Mapbox API token)", + "Identifier of base map style, some of which require a Mapbox or Stadia Maps API token to be set using `plotly.express.set_mapbox_access_token()`.", + "Allowed values which do not require a token are `'open-street-map'`, `'white-bg'`, `'carto-positron'`, `'carto-darkmatter'`.", + "Allowed values which require a Mapbox API token are `'basic'`, `'streets'`, `'outdoors'`, `'light'`, `'dark'`, `'satellite'`, `'satellite-streets'`.", + "Allowed values which require a Stadia Maps API token are `'stamen-terrain'`, `'stamen-toner'`, `'stamen-watercolor'`.", + ], + points=[ + "str or boolean (default `'outliers'`)", + "One of `'outliers'`, `'suspectedoutliers'`, `'all'`, or `False`.", + "If `'outliers'`, only the sample points lying outside the whiskers are shown.", + "If `'suspectedoutliers'`, all outlier points are shown and those less than 4*Q1-3*Q3 or greater than 4*Q3-3*Q1 are highlighted with the marker's `'outliercolor'`.", + "If `'outliers'`, only the sample points lying outside the whiskers are shown.", + "If `'all'`, all sample points are shown.", + "If `False`, no sample points are shown and the whiskers extend to the full range of the sample.", + ], + box=["boolean (default `False`)", "If `True`, boxes are drawn inside the violins."], + notched=["boolean (default `False`)", "If `True`, boxes are drawn with notches."], + geojson=[ + "GeoJSON-formatted dict", + "Must contain a Polygon feature collection, with IDs, which are references from `locations`.", + ], + featureidkey=[ + "str (default: `'id'`)", + "Path to field in GeoJSON feature object with which to match the values passed in to `locations`." + "The most common alternative to the default is of the form `'properties.<key>`.", + ], + cumulative=[ + "boolean (default `False`)", + "If `True`, histogram values are cumulative.", + ], + nbins=["int", "Positive integer.", "Sets the number of bins."], + nbinsx=["int", "Positive integer.", "Sets the number of bins along the x axis."], + nbinsy=["int", "Positive integer.", "Sets the number of bins along the y axis."], + branchvalues=[ + "str", + "'total' or 'remainder'", + "Determines how the items in `values` are summed. When" + "set to 'total', items in `values` are taken to be value" + "of all its descendants. When set to 'remainder', items" + "in `values` corresponding to the root and the branches" + ":sectors are taken to be the extra part not part of the" + "sum of the values at their leaves.", + ], + maxdepth=[ + "int", + "Positive integer", + "Sets the number of rendered sectors from any given `level`. Set `maxdepth` to -1 to render all the" + "levels in the hierarchy.", + ], + ecdfnorm=[ + "string or `None` (default `'probability'`)", + "One of `'probability'` or `'percent'`", + "If `None`, values will be raw counts or sums.", + "If `'probability', values will be probabilities normalized from 0 to 1.", + "If `'percent', values will be percentages normalized from 0 to 100.", + ], + ecdfmode=[ + "string (default `'standard'`)", + "One of `'standard'`, `'complementary'` or `'reversed'`", + "If `'standard'`, the ECDF is plotted such that values represent data at or below the point.", + "If `'complementary'`, the CCDF is plotted such that values represent data above the point.", + "If `'reversed'`, a variant of the CCDF is plotted such that values represent data at or above the point.", + ], + text_auto=[ + "bool or string (default `False`)", + "If `True` or a string, the x or y or z values will be displayed as text, depending on the orientation", + "A string like `'.2f'` will be interpreted as a `texttemplate` numeric formatting directive.", + ], +) + + +def make_docstring(fn, override_dict=None, append_dict=None): + override_dict = {} if override_dict is None else override_dict + append_dict = {} if append_dict is None else append_dict + tw = TextWrapper( + width=75, + initial_indent=" ", + subsequent_indent=" ", + break_on_hyphens=False, + ) + result = (fn.__doc__ or "") + "\nParameters\n----------\n" + for param in getfullargspec(fn)[0]: + if override_dict.get(param): + param_doc = list(override_dict[param]) + else: + param_doc = list(docs[param]) + if append_dict.get(param): + param_doc += append_dict[param] + param_desc_list = param_doc[1:] + param_desc = ( + tw.fill(" ".join(param_desc_list or "")) + if param in docs or param in override_dict + else "(documentation missing from map)" + ) + + param_type = param_doc[0] + result += "%s: %s\n%s\n" % (param, param_type, param_desc) + result += "\nReturns\n-------\n" + result += " plotly.graph_objects.Figure" + return result |