Tests Test Coverage Latest release BSD-3 clause license PyPI - Python Version

Command Line

Help:

plottoolbox --help

about

$ plottoolbox about --help
usage: plottoolbox about [-h]

Display version number and system information.

options:
  -h, --help  show this help message and exit

autocorrelation

$ plottoolbox autocorrelation --help
usage: plottoolbox autocorrelation [-h] [--input_ts INPUT_TS]
                                   [--columns COLUMNS]
                                   [--start_date START_DATE]
                                   [--end_date END_DATE] [--clean]
                                   [--skiprows SKIPROWS]
                                   [--index_type INDEX_TYPE] [--names NAMES]
                                   [--ofilename OFILENAME] [--xtitle XTITLE]
                                   [--ytitle YTITLE] [--title TITLE]
                                   [--figsize FIGSIZE] [--legend LEGEND]
                                   [--legend_names LEGEND_NAMES] [--xlim XLIM]
                                   [--ylim YLIM] [--grid]
                                   [--xlabel_rotation XLABEL_ROTATION]
                                   [--ylabel_rotation YLABEL_ROTATION] [--por]
                                   [--round_index ROUND_INDEX]
                                   [--dropna DROPNA]
                                   [--source_units SOURCE_UNITS]
                                   [--target_units TARGET_UNITS]
                                   [--plot_styles PLOT_STYLES]

The "autocorrelation" creates an autocorrelation plot.

The horizontal lines in the plot correspond to 95% and 99% confidence
bands.

The dashed line is 99% confidence band.

Only available for a single time-series.

Data must be organized as 'index,y1'.  Can only plot one series.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --xlabel_rotation XLABEL_ROTATION
                        [optional]
                        
                        Rotation for major x-axis labels for plots.
  --ylabel_rotation YLABEL_ROTATION
                        [optional]
                        
                        Rotation for major y-axis labels for plots.
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots

bar

$ plottoolbox bar --help
usage: plottoolbox bar [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                       [--start_date START_DATE] [--end_date END_DATE]
                       [--clean] [--skiprows SKIPROWS]
                       [--index_type INDEX_TYPE] [--names NAMES]
                       [--ofilename OFILENAME] [--xtitle XTITLE]
                       [--ytitle YTITLE] [--title TITLE] [--figsize FIGSIZE]
                       [--legend LEGEND] [--legend_names LEGEND_NAMES]
                       [--colors COLORS] [--linestyles LINESTYLES]
                       [--markerstyles MARKERSTYLES]
                       [--bar_hatchstyles BAR_HATCHSTYLES] [--style STYLE]
                       [--xaxis XAXIS] [--yaxis YAXIS] [--xlim XLIM]
                       [--ylim YLIM] [--grid]
                       [--label_rotation LABEL_ROTATION]
                       [--label_skip LABEL_SKIP] [--force_freq FORCE_FREQ]
                       [--por] [--invert_xaxis] [--invert_yaxis]
                       [--round_index ROUND_INDEX] [--dropna DROPNA]
                       [--source_units SOURCE_UNITS]
                       [--target_units TARGET_UNITS]
                       [--plot_styles PLOT_STYLES] [--hlines_y HLINES_Y]
                       [--hlines_xmin HLINES_XMIN] [--hlines_xmax HLINES_XMAX]
                       [--hlines_colors HLINES_COLORS]
                       [--hlines_linestyles HLINES_LINESTYLES]
                       [--vlines_x VLINES_X] [--vlines_ymin VLINES_YMIN]
                       [--vlines_ymax VLINES_YMAX]
                       [--vlines_colors VLINES_COLORS]
                       [--vlines_linestyles VLINES_LINESTYLES]

"bar" make a bar or column plot.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --bar_hatchstyles BAR_HATCHSTYLES
                        [optional, default to "auto", only used if type equal to "bar", "barh",
                        "bar_stacked", and "barh_stacked"]
                        
                        If 'auto' will iterate through the available matplotlib hatch types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        +-----------------+-------------------+
                        | bar_hatchstyles | Description       |
                        +=================+===================+
                        | /               | diagonal hatching |
                        +-----------------+-------------------+
                        | ``\``           | back diagonal     |
                        +-----------------+-------------------+
                        | ``|``           | vertical          |
                        +-----------------+-------------------+
                        | ``-``           | horizontal        |
                        +-----------------+-------------------+
                        | ``+``           | crossed           |
                        +-----------------+-------------------+
                        | ``x``           | crossed diagonal  |
                        +-----------------+-------------------+
                        | o               | small circle      |
                        +-----------------+-------------------+
                        | O               | large circle      |
                        +-----------------+-------------------+
                        | .               | dots              |
                        +-----------------+-------------------+
                        | ``*``           | stars             |
                        +-----------------+-------------------+
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --label_rotation LABEL_ROTATION
                        [optional]
                        
                        Rotation for major labels for bar plots.
  --label_skip LABEL_SKIP
                        [optional]
                        
                        Skip for major labels for bar plots.
  --force_freq FORCE_FREQ
                        [optional, output format]
                        
                        Force this frequency for the output.  Typically you will only want
                        to enforce a smaller interval where toolbox_utils will insert
                        missing values as needed.  WARNING: you may lose data if not
                        careful with this option.  In general, letting the algorithm
                        determine the frequency should always work, but this option will
                        override.  Use PANDAS offset codes.
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

barh

$ plottoolbox barh --help
usage: plottoolbox barh [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                        [--start_date START_DATE] [--end_date END_DATE]
                        [--clean] [--skiprows SKIPROWS]
                        [--index_type INDEX_TYPE] [--names NAMES]
                        [--ofilename OFILENAME] [--xtitle XTITLE]
                        [--ytitle YTITLE] [--title TITLE] [--figsize FIGSIZE]
                        [--legend LEGEND] [--legend_names LEGEND_NAMES]
                        [--colors COLORS] [--linestyles LINESTYLES]
                        [--markerstyles MARKERSTYLES]
                        [--bar_hatchstyles BAR_HATCHSTYLES] [--style STYLE]
                        [--xaxis XAXIS] [--yaxis YAXIS] [--xlim XLIM]
                        [--ylim YLIM] [--grid]
                        [--label_rotation LABEL_ROTATION]
                        [--label_skip LABEL_SKIP] [--force_freq FORCE_FREQ]
                        [--por] [--invert_xaxis] [--invert_yaxis]
                        [--round_index ROUND_INDEX] [--dropna DROPNA]
                        [--source_units SOURCE_UNITS]
                        [--target_units TARGET_UNITS]
                        [--plot_styles PLOT_STYLES] [--hlines_y HLINES_Y]
                        [--hlines_xmin HLINES_XMIN]
                        [--hlines_xmax HLINES_XMAX]
                        [--hlines_colors HLINES_COLORS]
                        [--hlines_linestyles HLINES_LINESTYLES]
                        [--vlines_x VLINES_X] [--vlines_ymin VLINES_YMIN]
                        [--vlines_ymax VLINES_YMAX]
                        [--vlines_colors VLINES_COLORS]
                        [--vlines_linestyles VLINES_LINESTYLES]

"barh" creates a horizontal bar plot.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --bar_hatchstyles BAR_HATCHSTYLES
                        [optional, default to "auto", only used if type equal to "bar", "barh",
                        "bar_stacked", and "barh_stacked"]
                        
                        If 'auto' will iterate through the available matplotlib hatch types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        +-----------------+-------------------+
                        | bar_hatchstyles | Description       |
                        +=================+===================+
                        | /               | diagonal hatching |
                        +-----------------+-------------------+
                        | ``\``           | back diagonal     |
                        +-----------------+-------------------+
                        | ``|``           | vertical          |
                        +-----------------+-------------------+
                        | ``-``           | horizontal        |
                        +-----------------+-------------------+
                        | ``+``           | crossed           |
                        +-----------------+-------------------+
                        | ``x``           | crossed diagonal  |
                        +-----------------+-------------------+
                        | o               | small circle      |
                        +-----------------+-------------------+
                        | O               | large circle      |
                        +-----------------+-------------------+
                        | .               | dots              |
                        +-----------------+-------------------+
                        | ``*``           | stars             |
                        +-----------------+-------------------+
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --label_rotation LABEL_ROTATION
                        [optional]
                        
                        Rotation for major labels for bar plots.
  --label_skip LABEL_SKIP
                        [optional]
                        
                        Skip for major labels for bar plots.
  --force_freq FORCE_FREQ
                        [optional, output format]
                        
                        Force this frequency for the output.  Typically you will only want
                        to enforce a smaller interval where toolbox_utils will insert
                        missing values as needed.  WARNING: you may lose data if not
                        careful with this option.  In general, letting the algorithm
                        determine the frequency should always work, but this option will
                        override.  Use PANDAS offset codes.
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

barh_stacked

$ plottoolbox barh_stacked --help
usage: plottoolbox barh_stacked [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                                [--start_date START_DATE]
                                [--end_date END_DATE] [--clean]
                                [--skiprows SKIPROWS]
                                [--index_type INDEX_TYPE] [--names NAMES]
                                [--ofilename OFILENAME] [--xtitle XTITLE]
                                [--ytitle YTITLE] [--title TITLE]
                                [--figsize FIGSIZE] [--legend LEGEND]
                                [--legend_names LEGEND_NAMES]
                                [--colors COLORS] [--linestyles LINESTYLES]
                                [--markerstyles MARKERSTYLES]
                                [--bar_hatchstyles BAR_HATCHSTYLES]
                                [--style STYLE] [--xaxis XAXIS]
                                [--yaxis YAXIS] [--xlim XLIM] [--ylim YLIM]
                                [--grid] [--label_rotation LABEL_ROTATION]
                                [--label_skip LABEL_SKIP]
                                [--force_freq FORCE_FREQ] [--por]
                                [--invert_xaxis] [--invert_yaxis]
                                [--round_index ROUND_INDEX] [--dropna DROPNA]
                                [--source_units SOURCE_UNITS]
                                [--target_units TARGET_UNITS]
                                [--plot_styles PLOT_STYLES]
                                [--hlines_y HLINES_Y]
                                [--hlines_xmin HLINES_XMIN]
                                [--hlines_xmax HLINES_XMAX]
                                [--hlines_colors HLINES_COLORS]
                                [--hlines_linestyles HLINES_LINESTYLES]
                                [--vlines_x VLINES_X]
                                [--vlines_ymin VLINES_YMIN]
                                [--vlines_ymax VLINES_YMAX]
                                [--vlines_colors VLINES_COLORS]
                                [--vlines_linestyles VLINES_LINESTYLES]

"barh_stacked" makes a horizontal stacked bar plot.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --bar_hatchstyles BAR_HATCHSTYLES
                        [optional, default to "auto", only used if type equal to "bar", "barh",
                        "bar_stacked", and "barh_stacked"]
                        
                        If 'auto' will iterate through the available matplotlib hatch types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        +-----------------+-------------------+
                        | bar_hatchstyles | Description       |
                        +=================+===================+
                        | /               | diagonal hatching |
                        +-----------------+-------------------+
                        | ``\``           | back diagonal     |
                        +-----------------+-------------------+
                        | ``|``           | vertical          |
                        +-----------------+-------------------+
                        | ``-``           | horizontal        |
                        +-----------------+-------------------+
                        | ``+``           | crossed           |
                        +-----------------+-------------------+
                        | ``x``           | crossed diagonal  |
                        +-----------------+-------------------+
                        | o               | small circle      |
                        +-----------------+-------------------+
                        | O               | large circle      |
                        +-----------------+-------------------+
                        | .               | dots              |
                        +-----------------+-------------------+
                        | ``*``           | stars             |
                        +-----------------+-------------------+
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --label_rotation LABEL_ROTATION
                        [optional]
                        
                        Rotation for major labels for bar plots.
  --label_skip LABEL_SKIP
                        [optional]
                        
                        Skip for major labels for bar plots.
  --force_freq FORCE_FREQ
                        [optional, output format]
                        
                        Force this frequency for the output.  Typically you will only want
                        to enforce a smaller interval where toolbox_utils will insert
                        missing values as needed.  WARNING: you may lose data if not
                        careful with this option.  In general, letting the algorithm
                        determine the frequency should always work, but this option will
                        override.  Use PANDAS offset codes.
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

bar_stacked

$ plottoolbox bar_stacked --help
usage: plottoolbox bar_stacked [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                               [--start_date START_DATE] [--end_date END_DATE]
                               [--clean] [--skiprows SKIPROWS]
                               [--index_type INDEX_TYPE] [--names NAMES]
                               [--ofilename OFILENAME] [--xtitle XTITLE]
                               [--ytitle YTITLE] [--title TITLE]
                               [--figsize FIGSIZE] [--legend LEGEND]
                               [--legend_names LEGEND_NAMES] [--colors COLORS]
                               [--linestyles LINESTYLES]
                               [--markerstyles MARKERSTYLES]
                               [--bar_hatchstyles BAR_HATCHSTYLES]
                               [--style STYLE] [--xaxis XAXIS] [--yaxis YAXIS]
                               [--xlim XLIM] [--ylim YLIM] [--grid]
                               [--label_rotation LABEL_ROTATION]
                               [--label_skip LABEL_SKIP]
                               [--force_freq FORCE_FREQ] [--por]
                               [--invert_xaxis] [--invert_yaxis]
                               [--round_index ROUND_INDEX] [--dropna DROPNA]
                               [--source_units SOURCE_UNITS]
                               [--target_units TARGET_UNITS]
                               [--plot_styles PLOT_STYLES]
                               [--hlines_y HLINES_Y]
                               [--hlines_xmin HLINES_XMIN]
                               [--hlines_xmax HLINES_XMAX]
                               [--hlines_colors HLINES_COLORS]
                               [--hlines_linestyles HLINES_LINESTYLES]
                               [--vlines_x VLINES_X]
                               [--vlines_ymin VLINES_YMIN]
                               [--vlines_ymax VLINES_YMAX]
                               [--vlines_colors VLINES_COLORS]
                               [--vlines_linestyles VLINES_LINESTYLES]

"barh_stacked" creates a horizontal stacked bar plot.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --bar_hatchstyles BAR_HATCHSTYLES
                        [optional, default to "auto", only used if type equal to "bar", "barh",
                        "bar_stacked", and "barh_stacked"]
                        
                        If 'auto' will iterate through the available matplotlib hatch types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        +-----------------+-------------------+
                        | bar_hatchstyles | Description       |
                        +=================+===================+
                        | /               | diagonal hatching |
                        +-----------------+-------------------+
                        | ``\``           | back diagonal     |
                        +-----------------+-------------------+
                        | ``|``           | vertical          |
                        +-----------------+-------------------+
                        | ``-``           | horizontal        |
                        +-----------------+-------------------+
                        | ``+``           | crossed           |
                        +-----------------+-------------------+
                        | ``x``           | crossed diagonal  |
                        +-----------------+-------------------+
                        | o               | small circle      |
                        +-----------------+-------------------+
                        | O               | large circle      |
                        +-----------------+-------------------+
                        | .               | dots              |
                        +-----------------+-------------------+
                        | ``*``           | stars             |
                        +-----------------+-------------------+
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --label_rotation LABEL_ROTATION
                        [optional]
                        
                        Rotation for major labels for bar plots.
  --label_skip LABEL_SKIP
                        [optional]
                        
                        Skip for major labels for bar plots.
  --force_freq FORCE_FREQ
                        [optional, output format]
                        
                        Force this frequency for the output.  Typically you will only want
                        to enforce a smaller interval where toolbox_utils will insert
                        missing values as needed.  WARNING: you may lose data if not
                        careful with this option.  In general, letting the algorithm
                        determine the frequency should always work, but this option will
                        override.  Use PANDAS offset codes.
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

bootstrap

$ plottoolbox bootstrap --help
usage: plottoolbox bootstrap [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                             [--start_date START_DATE] [--end_date END_DATE]
                             [--clean] [--skiprows SKIPROWS]
                             [--index_type INDEX_TYPE] [--names NAMES]
                             [--ofilename OFILENAME] [--xtitle XTITLE]
                             [--ytitle YTITLE] [--title TITLE]
                             [--figsize FIGSIZE] [--legend LEGEND]
                             [--legend_names LEGEND_NAMES] [--colors COLORS]
                             [--linestyles LINESTYLES]
                             [--markerstyles MARKERSTYLES] [--style STYLE]
                             [--bootstrap_size BOOTSTRAP_SIZE]
                             [--bootstrap_samples BOOTSTRAP_SAMPLES] [--grid]
                             [--por] [--invert_xaxis] [--invert_yaxis]
                             [--round_index ROUND_INDEX] [--dropna DROPNA]
                             [--source_units SOURCE_UNITS]
                             [--target_units TARGET_UNITS]
                             [--plot_styles PLOT_STYLES] [--hlines_y HLINES_Y]
                             [--hlines_xmin HLINES_XMIN]
                             [--hlines_xmax HLINES_XMAX]
                             [--hlines_colors HLINES_COLORS]
                             [--hlines_linestyles HLINES_LINESTYLES]
                             [--vlines_x VLINES_X] [--vlines_ymin VLINES_YMIN]
                             [--vlines_ymax VLINES_YMAX]
                             [--vlines_colors VLINES_COLORS]
                             [--vlines_linestyles VLINES_LINESTYLES]

"bootstrap" creates a plot that visually assess aspects of a data set by
plotting random selections of values.  Only available for a single
time-series.

Data must be organized as 'index,y1'.  Can only plot one series.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --bootstrap_size BOOTSTRAP_SIZE
                        Defaults to 50.
                        
                        The size of the bootstrap.
  --bootstrap_samples BOOTSTRAP_SAMPLES
                        Defaults to 500.
                        
                        The number of samples in the bootstrap.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

boxplot

$ plottoolbox boxplot --help
usage: plottoolbox boxplot [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                           [--start_date START_DATE] [--end_date END_DATE]
                           [--clean] [--skiprows SKIPROWS]
                           [--index_type INDEX_TYPE] [--names NAMES]
                           [--ofilename OFILENAME] [--xtitle XTITLE]
                           [--ytitle YTITLE] [--title TITLE]
                           [--figsize FIGSIZE] [--legend LEGEND]
                           [--legend_names LEGEND_NAMES] [--colors COLORS]
                           [--linestyles LINESTYLES]
                           [--markerstyles MARKERSTYLES] [--style STYLE]
                           [--xaxis XAXIS] [--yaxis YAXIS] [--xlim XLIM]
                           [--ylim YLIM] [--grid] [--por] [--invert_xaxis]
                           [--invert_yaxis] [--round_index ROUND_INDEX]
                           [--dropna DROPNA] [--source_units SOURCE_UNITS]
                           [--target_units TARGET_UNITS]
                           [--plot_styles PLOT_STYLES] [--hlines_y HLINES_Y]
                           [--hlines_xmin HLINES_XMIN]
                           [--hlines_xmax HLINES_XMAX]
                           [--hlines_colors HLINES_COLORS]
                           [--hlines_linestyles HLINES_LINESTYLES]
                           [--vlines_x VLINES_X] [--vlines_ymin VLINES_YMIN]
                           [--vlines_ymax VLINES_YMAX]
                           [--vlines_colors VLINES_COLORS]
                           [--vlines_linestyles VLINES_LINESTYLES]

Box extends from lower to upper quartile, with line at the median.
Depending on the statistics, the wiskers represent the range of the data or
1.5 times the inter-quartile range (Q3 - Q1).

Data must be organized as 'index,y1,y2,y3,...,yN'.  The 'index' is
            ignored and all data columns are plotted.  The "columns" keyword
            can be used to duplicate or change the order of all the data
            columns.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

double_mass

$ plottoolbox double_mass --help
usage: plottoolbox double_mass [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                               [--start_date START_DATE] [--end_date END_DATE]
                               [--clean] [--skiprows SKIPROWS]
                               [--index_type INDEX_TYPE] [--names NAMES]
                               [--ofilename OFILENAME] [--xtitle XTITLE]
                               [--ytitle YTITLE] [--title TITLE]
                               [--figsize FIGSIZE] [--legend LEGEND]
                               [--legend_names LEGEND_NAMES] [--colors COLORS]
                               [--linestyles LINESTYLES]
                               [--markerstyles MARKERSTYLES] [--style STYLE]
                               [--xaxis XAXIS] [--yaxis YAXIS] [--xlim XLIM]
                               [--ylim YLIM] [--grid] [--drawstyle DRAWSTYLE]
                               [--por] [--invert_xaxis] [--invert_yaxis]
                               [--round_index ROUND_INDEX] [--dropna DROPNA]
                               [--source_units SOURCE_UNITS]
                               [--target_units TARGET_UNITS]
                               [--plot_styles PLOT_STYLES]
                               [--hlines_y HLINES_Y]
                               [--hlines_xmin HLINES_XMIN]
                               [--hlines_xmax HLINES_XMAX]
                               [--hlines_colors HLINES_COLORS]
                               [--hlines_linestyles HLINES_LINESTYLES]
                               [--vlines_x VLINES_X]
                               [--vlines_ymin VLINES_YMIN]
                               [--vlines_ymax VLINES_YMAX]
                               [--vlines_colors VLINES_COLORS]
                               [--vlines_linestyles VLINES_LINESTYLES]

"double_mass" creates a 'x,y' plot of the cumulative sum of x and y.

If the input 'x,y' dataset(s) is organized as
            'index,x1,y1,x2,y2,x3,y3,...,xN,yN' then the 'index' is ignored.
            If there is one 'x,y' dataset then it can be organized as 'index,y'
            where 'index' is used for 'x'.  The "columns" keyword can be used
            to duplicate or change the order of all the data columns.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --drawstyle DRAWSTYLE
                        [optional, default is 'default']
                        
                        'default' connects the points with lines. The
                        steps variants produce step-plots. 'steps' is equivalent to 'steps-pre'
                        and is maintained for backward-compatibility.
                        
                        ACCEPTS::
                        
                         ['default' | 'steps' | 'steps-pre' | 'steps-mid' | 'steps-post']
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

handh

$ plottoolbox handh --help
usage: plottoolbox handh [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                         [--start_date START_DATE] [--end_date END_DATE]
                         [--clean] [--skiprows SKIPROWS]
                         [--index_type INDEX_TYPE] [--names NAMES]
                         [--ofilename OFILENAME] [--xtitle XTITLE]
                         [--ytitle YTITLE] [--title TITLE] [--figsize FIGSIZE]
                         [--legend LEGEND] [--legend_names LEGEND_NAMES]
                         [--subplots] [--sharex] [--sharey] [--colors COLORS]
                         [--linestyles LINESTYLES]
                         [--markerstyles MARKERSTYLES] [--style STYLE]
                         [--xaxis XAXIS] [--yaxis YAXIS] [--xlim XLIM]
                         [--ylim YLIM] [--secondary_y] [--mark_right] [--grid]
                         [--drawstyle DRAWSTYLE] [--por] [--invert_xaxis]
                         [--invert_yaxis] [--round_index ROUND_INDEX]
                         [--dropna DROPNA] [--source_units SOURCE_UNITS]
                         [--target_units TARGET_UNITS]
                         [--plot_styles PLOT_STYLES] [--hlines_y HLINES_Y]
                         [--hlines_xmin HLINES_XMIN]
                         [--hlines_xmax HLINES_XMAX]
                         [--hlines_colors HLINES_COLORS]
                         [--hlines_linestyles HLINES_LINESTYLES]
                         [--vlines_x VLINES_X] [--vlines_ymin VLINES_YMIN]
                         [--vlines_ymax VLINES_YMAX]
                         [--vlines_colors VLINES_COLORS]
                         [--vlines_linestyles VLINES_LINESTYLES]

"handh" creates a time series plot of a hydrograph (flow) and hyetograph
(precipitation).

Data must be organized as 'index,Q,P'.  The 'index' must be
a date/time and all data columns are plotted.  Legend names are taken from
the column names in the first row unless over-ridden by the `legend_names`
keyword.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --subplots            [optional, defaults to False]
                        
                        Make separate subplots for each time series.
  --sharex              [optional, default to True]
                        
                        In case subplots=True, share x axis.
  --sharey              [optional, default to False]
                        
                        In case subplots=True, share y axis.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --secondary_y         secondary
                            [optional, default is False]
                        
                            * list/tuple: Give the column numbers or names to plot on secondary
                              y-axis.
                            * (string, string): The first string is the units of the primary axis,
                              the second string is the units of the secondary axis if you want just
                              unit conversion.  Use any units or combination thereof from the
                              "pint" library.
                            * (callable, callable): Functions relating relationship between
                              primary and secondary axis.  First function will be given the values
                              on primary axis and returns values on secondary axis.  Second function
                              will be do the inverse.  Python API only.
                            * string: One of pre-built (callable, callable) combinations.  Can be
                              one of "period".
  --mark_right          [optional, default is True]
                        
                        When using a secondary_y axis, should the legend label the axis of the
                        various time-series automatically.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --drawstyle DRAWSTYLE
                        [optional, default is 'default']
                        
                        'default' connects the points with lines. The
                        steps variants produce step-plots. 'steps' is equivalent to 'steps-pre'
                        and is maintained for backward-compatibility.
                        
                        ACCEPTS::
                        
                         ['default' | 'steps' | 'steps-pre' | 'steps-mid' | 'steps-post']
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

heatmap

$ plottoolbox heatmap --help
usage: plottoolbox heatmap [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                           [--start_date START_DATE] [--end_date END_DATE]
                           [--clean] [--skiprows SKIPROWS]
                           [--index_type INDEX_TYPE] [--names NAMES]
                           [--ofilename OFILENAME] [--xtitle XTITLE]
                           [--ytitle YTITLE] [--title TITLE]
                           [--figsize FIGSIZE] [--legend LEGEND]
                           [--legend_names LEGEND_NAMES] [--colors COLORS]
                           [--linestyles LINESTYLES]
                           [--markerstyles MARKERSTYLES] [--style STYLE]
                           [--grid] [--por] [--invert_xaxis] [--invert_yaxis]
                           [--round_index ROUND_INDEX] [--dropna DROPNA]
                           [--source_units SOURCE_UNITS]
                           [--target_units TARGET_UNITS]
                           [--plot_styles PLOT_STYLES] [--hlines_y HLINES_Y]
                           [--hlines_xmin HLINES_XMIN]
                           [--hlines_xmax HLINES_XMAX]
                           [--hlines_colors HLINES_COLORS]
                           [--hlines_linestyles HLINES_LINESTYLES]
                           [--vlines_x VLINES_X] [--vlines_ymin VLINES_YMIN]
                           [--vlines_ymax VLINES_YMAX]
                           [--vlines_colors VLINES_COLORS]
                           [--vlines_linestyles VLINES_LINESTYLES]

"heatmap" creates a 2D heatmap of daily data, day of year x-axis, and year
for y-axis.  Only available for a single, daily time-series.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

hexbin

$ plottoolbox hexbin --help
usage: plottoolbox hexbin [-h] [--input_ts INPUT_TS]
                          [--reduce_C_function REDUCE_C_FUNCTION]
                          [--gridsize GRIDSIZE] [--columns COLUMNS]
                          [--start_date START_DATE] [--end_date END_DATE]
                          [--clean] [--skiprows SKIPROWS]
                          [--index_type INDEX_TYPE] [--names NAMES]
                          [--ofilename OFILENAME] [--xtitle XTITLE]
                          [--ytitle YTITLE] [--title TITLE]
                          [--figsize FIGSIZE] [--legend LEGEND]
                          [--legend_names LEGEND_NAMES] [--por]
                          [--invert_xaxis] [--invert_yaxis]
                          [--source_units SOURCE_UNITS]
                          [--target_units TARGET_UNITS]
                          [--plot_styles PLOT_STYLES]

Only available for a single x,y pair with an additional, optional data
column.

If the data column is not provided, the number of points in each bin is
shown.

If the data column is provided, the `reduce_C_function` is applied to all
values within each hexagon cell.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --reduce_C_function REDUCE_C_FUNCTION
                        Function of one argument that reduces all the values in a bin to
                        a single number.  The available options at the command line are
                        "np.mean", "np.max", "np.sum", "np.std".  Using the Python API can use
                        any callable.
  --gridsize GRIDSIZE   The number of hexagons in the x-direction. The corresponding number of
                        hexagons in the y-direction is chosen in a way that the hexagons are
                        approximately regular. Alternatively, gridsize can be a tuple with two
                        elements specifying the number of hexagons in the x-direction and the
                        y-direction.
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots

histogram

$ plottoolbox histogram --help
usage: plottoolbox histogram [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                             [--start_date START_DATE] [--end_date END_DATE]
                             [--clean] [--skiprows SKIPROWS]
                             [--index_type INDEX_TYPE] [--names NAMES]
                             [--ofilename OFILENAME] [--xtitle XTITLE]
                             [--ytitle YTITLE] [--title TITLE]
                             [--figsize FIGSIZE] [--legend LEGEND]
                             [--legend_names LEGEND_NAMES] [--sharex]
                             [--sharey] [--colors COLORS]
                             [--linestyles LINESTYLES]
                             [--markerstyles MARKERSTYLES] [--style STYLE]
                             [--grid] [--por] [--invert_xaxis]
                             [--invert_yaxis] [--round_index ROUND_INDEX]
                             [--dropna DROPNA] [--source_units SOURCE_UNITS]
                             [--target_units TARGET_UNITS]
                             [--plot_styles PLOT_STYLES] [--hlines_y HLINES_Y]
                             [--hlines_xmin HLINES_XMIN]
                             [--hlines_xmax HLINES_XMAX]
                             [--hlines_colors HLINES_COLORS]
                             [--hlines_linestyles HLINES_LINESTYLES]
                             [--vlines_x VLINES_X] [--vlines_ymin VLINES_YMIN]
                             [--vlines_ymax VLINES_YMAX]
                             [--vlines_colors VLINES_COLORS]
                             [--vlines_linestyles VLINES_LINESTYLES]

"histogram" will calculate and create a histogram plot.  See 'kde' for
a smooth representation of a histogram.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --sharex              [optional, default to True]
                        
                        In case subplots=True, share x axis.
  --sharey              [optional, default to False]
                        
                        In case subplots=True, share y axis.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

kde

$ plottoolbox kde --help
usage: plottoolbox kde [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                       [--start_date START_DATE] [--end_date END_DATE]
                       [--clean] [--skiprows SKIPROWS]
                       [--index_type INDEX_TYPE] [--names NAMES]
                       [--ofilename OFILENAME] [--xtitle XTITLE]
                       [--ytitle YTITLE] [--title TITLE] [--figsize FIGSIZE]
                       [--legend LEGEND] [--legend_names LEGEND_NAMES]
                       [--subplots] [--sharex] [--sharey] [--colors COLORS]
                       [--linestyles LINESTYLES] [--markerstyles MARKERSTYLES]
                       [--style STYLE] [--xaxis XAXIS] [--yaxis YAXIS]
                       [--xlim XLIM] [--ylim YLIM] [--secondary_y] [--grid]
                       [--por] [--invert_xaxis] [--invert_yaxis]
                       [--round_index ROUND_INDEX] [--dropna DROPNA]
                       [--source_units SOURCE_UNITS]
                       [--target_units TARGET_UNITS]
                       [--plot_styles PLOT_STYLES] [--hlines_y HLINES_Y]
                       [--hlines_xmin HLINES_XMIN] [--hlines_xmax HLINES_XMAX]
                       [--hlines_colors HLINES_COLORS]
                       [--hlines_linestyles HLINES_LINESTYLES]
                       [--vlines_x VLINES_X] [--vlines_ymin VLINES_YMIN]
                       [--vlines_ymax VLINES_YMAX]
                       [--vlines_colors VLINES_COLORS]
                       [--vlines_linestyles VLINES_LINESTYLES]

"kde" will create a plot of estimation of the probability density function
based on the data called kernel density estimation (KDE).

Data must be organized as 'index,y1,y2,y3,...,yN'.  The 'index' is
            ignored and all data columns are plotted.  The "columns" keyword
            can be used to duplicate or change the order of all the data
            columns.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --subplots            [optional, defaults to False]
                        
                        Make separate subplots for each time series.
  --sharex              [optional, default to True]
                        
                        In case subplots=True, share x axis.
  --sharey              [optional, default to False]
                        
                        In case subplots=True, share y axis.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --secondary_y         secondary
                            [optional, default is False]
                        
                            * list/tuple: Give the column numbers or names to plot on secondary
                              y-axis.
                            * (string, string): The first string is the units of the primary axis,
                              the second string is the units of the secondary axis if you want just
                              unit conversion.  Use any units or combination thereof from the
                              "pint" library.
                            * (callable, callable): Functions relating relationship between
                              primary and secondary axis.  First function will be given the values
                              on primary axis and returns values on secondary axis.  Second function
                              will be do the inverse.  Python API only.
                            * string: One of pre-built (callable, callable) combinations.  Can be
                              one of "period".
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

kde_time

$ plottoolbox kde_time --help
usage: plottoolbox kde_time [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                            [--start_date START_DATE] [--end_date END_DATE]
                            [--clean] [--skiprows SKIPROWS]
                            [--index_type INDEX_TYPE] [--names NAMES]
                            [--ofilename OFILENAME] [--xtitle XTITLE]
                            [--ytitle YTITLE] [--title TITLE]
                            [--figsize FIGSIZE] [--legend LEGEND]
                            [--legend_names LEGEND_NAMES] [--subplots]
                            [--sharex] [--sharey] [--colors COLORS]
                            [--linestyles LINESTYLES]
                            [--markerstyles MARKERSTYLES] [--style STYLE]
                            [--xaxis XAXIS] [--yaxis YAXIS] [--xlim XLIM]
                            [--ylim YLIM] [--secondary_y] [--mark_right]
                            [--grid] [--drawstyle DRAWSTYLE] [--por]
                            [--invert_xaxis] [--invert_yaxis]
                            [--round_index ROUND_INDEX] [--dropna DROPNA]
                            [--source_units SOURCE_UNITS]
                            [--target_units TARGET_UNITS]
                            [--plot_styles PLOT_STYLES] [--hlines_y HLINES_Y]
                            [--hlines_xmin HLINES_XMIN]
                            [--hlines_xmax HLINES_XMAX]
                            [--hlines_colors HLINES_COLORS]
                            [--hlines_linestyles HLINES_LINESTYLES]
                            [--vlines_x VLINES_X] [--vlines_ymin VLINES_YMIN]
                            [--vlines_ymax VLINES_YMAX]
                            [--vlines_colors VLINES_COLORS]
                            [--vlines_linestyles VLINES_LINESTYLES]

This plot is an estimation of the probability density function based on the
data called kernel density estimation (KDE) combined with a time-series
plot.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --subplots            [optional, defaults to False]
                        
                        Make separate subplots for each time series.
  --sharex              [optional, default to True]
                        
                        In case subplots=True, share x axis.
  --sharey              [optional, default to False]
                        
                        In case subplots=True, share y axis.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --secondary_y         secondary
                            [optional, default is False]
                        
                            * list/tuple: Give the column numbers or names to plot on secondary
                              y-axis.
                            * (string, string): The first string is the units of the primary axis,
                              the second string is the units of the secondary axis if you want just
                              unit conversion.  Use any units or combination thereof from the
                              "pint" library.
                            * (callable, callable): Functions relating relationship between
                              primary and secondary axis.  First function will be given the values
                              on primary axis and returns values on secondary axis.  Second function
                              will be do the inverse.  Python API only.
                            * string: One of pre-built (callable, callable) combinations.  Can be
                              one of "period".
  --mark_right          [optional, default is True]
                        
                        When using a secondary_y axis, should the legend label the axis of the
                        various time-series automatically.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --drawstyle DRAWSTYLE
                        [optional, default is 'default']
                        
                        'default' connects the points with lines. The
                        steps variants produce step-plots. 'steps' is equivalent to 'steps-pre'
                        and is maintained for backward-compatibility.
                        
                        ACCEPTS::
                        
                         ['default' | 'steps' | 'steps-pre' | 'steps-mid' | 'steps-post']
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

lag_plot

$ plottoolbox lag_plot --help
usage: plottoolbox lag_plot [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                            [--start_date START_DATE] [--end_date END_DATE]
                            [--clean] [--skiprows SKIPROWS]
                            [--index_type INDEX_TYPE] [--names NAMES]
                            [--ofilename OFILENAME] [--xtitle XTITLE]
                            [--ytitle YTITLE] [--title TITLE]
                            [--figsize FIGSIZE] [--legend LEGEND]
                            [--legend_names LEGEND_NAMES] [--colors COLORS]
                            [--linestyles LINESTYLES]
                            [--markerstyles MARKERSTYLES] [--style STYLE]
                            [--grid] [--por] [--invert_xaxis] [--invert_yaxis]
                            [--round_index ROUND_INDEX] [--dropna DROPNA]
                            [--source_units SOURCE_UNITS]
                            [--target_units TARGET_UNITS]
                            [--lag_plot_lag LAG_PLOT_LAG]
                            [--plot_styles PLOT_STYLES] [--hlines_y HLINES_Y]
                            [--hlines_xmin HLINES_XMIN]
                            [--hlines_xmax HLINES_XMAX]
                            [--hlines_colors HLINES_COLORS]
                            [--hlines_linestyles HLINES_LINESTYLES]
                            [--vlines_x VLINES_X] [--vlines_ymin VLINES_YMIN]
                            [--vlines_ymax VLINES_YMAX]
                            [--vlines_colors VLINES_COLORS]
                            [--vlines_linestyles VLINES_LINESTYLES]

"lag_plot" indicates structure in the data.

Data must be organized as 'index,y1'.  Can only plot one series.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --lag_plot_lag LAG_PLOT_LAG
                        Defaults to 1.
                        
                        The lag used in the plot.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

lognorm_xaxis

$ plottoolbox lognorm_xaxis --help
usage: plottoolbox lognorm_xaxis [-h] [--input_ts INPUT_TS]
                                 [--columns COLUMNS] [--start_date START_DATE]
                                 [--end_date END_DATE] [--clean]
                                 [--skiprows SKIPROWS]
                                 [--index_type INDEX_TYPE] [--names NAMES]
                                 [--ofilename OFILENAME] [--xtitle XTITLE]
                                 [--ytitle YTITLE] [--title TITLE]
                                 [--figsize FIGSIZE] [--legend LEGEND]
                                 [--legend_names LEGEND_NAMES]
                                 [--colors COLORS] [--linestyles LINESTYLES]
                                 [--markerstyles MARKERSTYLES] [--style STYLE]
                                 [--xaxis XAXIS] [--yaxis YAXIS] [--xlim XLIM]
                                 [--ylim YLIM] [--grid]
                                 [--drawstyle DRAWSTYLE] [--por]
                                 [--invert_xaxis] [--invert_yaxis]
                                 [--round_index ROUND_INDEX] [--dropna DROPNA]
                                 [--plotting_position PLOTTING_POSITION]
                                 [--prob_plot_sort_values PROB_PLOT_SORT_VALUES]
                                 [--source_units SOURCE_UNITS]
                                 [--target_units TARGET_UNITS]
                                 [--plot_styles PLOT_STYLES]
                                 [--hlines_y HLINES_Y]
                                 [--hlines_xmin HLINES_XMIN]
                                 [--hlines_xmax HLINES_XMAX]
                                 [--hlines_colors HLINES_COLORS]
                                 [--hlines_linestyles HLINES_LINESTYLES]
                                 [--vlines_x VLINES_X]
                                 [--vlines_ymin VLINES_YMIN]
                                 [--vlines_ymax VLINES_YMAX]
                                 [--vlines_colors VLINES_COLORS]
                                 [--vlines_linestyles VLINES_LINESTYLES]

"lognorm_yaxis" will sort, calculate probabilities, and plot data against
a y axis lognormal distribution.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --drawstyle DRAWSTYLE
                        [optional, default is 'default']
                        
                        'default' connects the points with lines. The
                        steps variants produce step-plots. 'steps' is equivalent to 'steps-pre'
                        and is maintained for backward-compatibility.
                        
                        ACCEPTS::
                        
                         ['default' | 'steps' | 'steps-pre' | 'steps-mid' | 'steps-post']
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --plotting_position PLOTTING_POSITION
                        [optional, default is 'weibull']
                        
                        +------------+--------+----------------------+--------------------+
                        | Name       | a      | Equation             | Description        |
                        |            |        | (i-a)/(n+1-2*a)      |                    |
                        +============+========+======================+====================+
                        | weibull    | 0      | i/(n+1)              | mean of sampling   |
                        | (default)  |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | filliben   | 0.3175 | (i-0.3175)/(n+0.365) |                    |
                        +------------+--------+----------------------+--------------------+
                        | yu         | 0.326  | (i-0.326)/(n+0.348)  |                    |
                        +------------+--------+----------------------+--------------------+
                        | tukey      | 1/3    | (i-1/3)/(n+1/3)      | approx. median of  |
                        |            |        |                      | sampling           |
                        |            |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | blom       | 0.375  | (i-0.375)/(n+0.25)   |                    |
                        +------------+--------+----------------------+--------------------+
                        | cunnane    | 2/5    | (i-2/5)/(n+1/5)      | subjective         |
                        +------------+--------+----------------------+--------------------+
                        | gringorton | 0.44   | (1-0.44)/(n+0.12)    |                    |
                        +------------+--------+----------------------+--------------------+
                        | hazen      | 1/2    | (i-1/2)/n            | midpoints of n     |
                        |            |        |                      | equal intervals    |
                        +------------+--------+----------------------+--------------------+
                        | larsen     | 0.567  | (i-0.567)/(n-0.134)  |                    |
                        +------------+--------+----------------------+--------------------+
                        | gumbel     | 1      | (i-1)/(n-1)          | mode of sampling   |
                        |            |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | california | NA     | i/n                  |                    |
                        +------------+--------+----------------------+--------------------+
                        
                        Where 'i' is the sorted rank of the y value, and 'n' is the total
                        number of values to be plotted.
                        
                        The 'blom' plotting position is also known as the 'Sevruk and
                        Geiger'.
                        
                        Only used for norm_xaxis, norm_yaxis, lognorm_xaxis,
                        lognorm_yaxis, weibull_xaxis, and weibull_yaxis.
  --prob_plot_sort_values PROB_PLOT_SORT_VALUES
                        [optional, default is 'descending']
                        
                        How to sort the values for the probability plots.
                        
                        Only used for norm_xaxis, norm_yaxis, lognorm_xaxis,
                        lognorm_yaxis, weibull_xaxis, and weibull_yaxis.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

lognorm_yaxis

$ plottoolbox lognorm_yaxis --help
usage: plottoolbox lognorm_yaxis [-h] [--input_ts INPUT_TS]
                                 [--columns COLUMNS] [--start_date START_DATE]
                                 [--end_date END_DATE] [--clean]
                                 [--skiprows SKIPROWS]
                                 [--index_type INDEX_TYPE] [--names NAMES]
                                 [--ofilename OFILENAME] [--xtitle XTITLE]
                                 [--ytitle YTITLE] [--title TITLE]
                                 [--figsize FIGSIZE] [--legend LEGEND]
                                 [--legend_names LEGEND_NAMES]
                                 [--colors COLORS] [--linestyles LINESTYLES]
                                 [--markerstyles MARKERSTYLES] [--style STYLE]
                                 [--xaxis XAXIS] [--yaxis YAXIS] [--xlim XLIM]
                                 [--ylim YLIM] [--grid]
                                 [--drawstyle DRAWSTYLE] [--por]
                                 [--invert_xaxis] [--invert_yaxis]
                                 [--round_index ROUND_INDEX] [--dropna DROPNA]
                                 [--plotting_position PLOTTING_POSITION]
                                 [--prob_plot_sort_values PROB_PLOT_SORT_VALUES]
                                 [--source_units SOURCE_UNITS]
                                 [--target_units TARGET_UNITS]
                                 [--plot_styles PLOT_STYLES]
                                 [--hlines_y HLINES_Y]
                                 [--hlines_xmin HLINES_XMIN]
                                 [--hlines_xmax HLINES_XMAX]
                                 [--hlines_colors HLINES_COLORS]
                                 [--hlines_linestyles HLINES_LINESTYLES]
                                 [--vlines_x VLINES_X]
                                 [--vlines_ymin VLINES_YMIN]
                                 [--vlines_ymax VLINES_YMAX]
                                 [--vlines_colors VLINES_COLORS]
                                 [--vlines_linestyles VLINES_LINESTYLES]

"lognorm_yaxis" will sort, calculate probabilities, and plot data against
an y axis lognormal distribution.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --drawstyle DRAWSTYLE
                        [optional, default is 'default']
                        
                        'default' connects the points with lines. The
                        steps variants produce step-plots. 'steps' is equivalent to 'steps-pre'
                        and is maintained for backward-compatibility.
                        
                        ACCEPTS::
                        
                         ['default' | 'steps' | 'steps-pre' | 'steps-mid' | 'steps-post']
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --plotting_position PLOTTING_POSITION
                        [optional, default is 'weibull']
                        
                        +------------+--------+----------------------+--------------------+
                        | Name       | a      | Equation             | Description        |
                        |            |        | (i-a)/(n+1-2*a)      |                    |
                        +============+========+======================+====================+
                        | weibull    | 0      | i/(n+1)              | mean of sampling   |
                        | (default)  |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | filliben   | 0.3175 | (i-0.3175)/(n+0.365) |                    |
                        +------------+--------+----------------------+--------------------+
                        | yu         | 0.326  | (i-0.326)/(n+0.348)  |                    |
                        +------------+--------+----------------------+--------------------+
                        | tukey      | 1/3    | (i-1/3)/(n+1/3)      | approx. median of  |
                        |            |        |                      | sampling           |
                        |            |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | blom       | 0.375  | (i-0.375)/(n+0.25)   |                    |
                        +------------+--------+----------------------+--------------------+
                        | cunnane    | 2/5    | (i-2/5)/(n+1/5)      | subjective         |
                        +------------+--------+----------------------+--------------------+
                        | gringorton | 0.44   | (1-0.44)/(n+0.12)    |                    |
                        +------------+--------+----------------------+--------------------+
                        | hazen      | 1/2    | (i-1/2)/n            | midpoints of n     |
                        |            |        |                      | equal intervals    |
                        +------------+--------+----------------------+--------------------+
                        | larsen     | 0.567  | (i-0.567)/(n-0.134)  |                    |
                        +------------+--------+----------------------+--------------------+
                        | gumbel     | 1      | (i-1)/(n-1)          | mode of sampling   |
                        |            |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | california | NA     | i/n                  |                    |
                        +------------+--------+----------------------+--------------------+
                        
                        Where 'i' is the sorted rank of the y value, and 'n' is the total
                        number of values to be plotted.
                        
                        The 'blom' plotting position is also known as the 'Sevruk and
                        Geiger'.
                        
                        Only used for norm_xaxis, norm_yaxis, lognorm_xaxis,
                        lognorm_yaxis, weibull_xaxis, and weibull_yaxis.
  --prob_plot_sort_values PROB_PLOT_SORT_VALUES
                        [optional, default is 'descending']
                        
                        How to sort the values for the probability plots.
                        
                        Only used for norm_xaxis, norm_yaxis, lognorm_xaxis,
                        lognorm_yaxis, weibull_xaxis, and weibull_yaxis.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

norm_xaxis

$ plottoolbox norm_xaxis --help
usage: plottoolbox norm_xaxis [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                              [--start_date START_DATE] [--end_date END_DATE]
                              [--clean] [--skiprows SKIPROWS]
                              [--index_type INDEX_TYPE] [--names NAMES]
                              [--ofilename OFILENAME] [--xtitle XTITLE]
                              [--ytitle YTITLE] [--title TITLE]
                              [--figsize FIGSIZE] [--legend LEGEND]
                              [--legend_names LEGEND_NAMES] [--colors COLORS]
                              [--linestyles LINESTYLES]
                              [--markerstyles MARKERSTYLES] [--style STYLE]
                              [--xaxis XAXIS] [--yaxis YAXIS] [--xlim XLIM]
                              [--ylim YLIM] [--grid] [--drawstyle DRAWSTYLE]
                              [--por] [--invert_xaxis] [--invert_yaxis]
                              [--round_index ROUND_INDEX] [--dropna DROPNA]
                              [--plotting_position PLOTTING_POSITION]
                              [--prob_plot_sort_values PROB_PLOT_SORT_VALUES]
                              [--source_units SOURCE_UNITS]
                              [--target_units TARGET_UNITS]
                              [--plot_styles PLOT_STYLES]
                              [--hlines_y HLINES_Y]
                              [--hlines_xmin HLINES_XMIN]
                              [--hlines_xmax HLINES_XMAX]
                              [--hlines_colors HLINES_COLORS]
                              [--hlines_linestyles HLINES_LINESTYLES]
                              [--vlines_x VLINES_X]
                              [--vlines_ymin VLINES_YMIN]
                              [--vlines_ymax VLINES_YMAX]
                              [--vlines_colors VLINES_COLORS]
                              [--vlines_linestyles VLINES_LINESTYLES]

"norm_xaxis" will sort, calculate probabilities, and plot data against an
x axis normal distribution.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --drawstyle DRAWSTYLE
                        [optional, default is 'default']
                        
                        'default' connects the points with lines. The
                        steps variants produce step-plots. 'steps' is equivalent to 'steps-pre'
                        and is maintained for backward-compatibility.
                        
                        ACCEPTS::
                        
                         ['default' | 'steps' | 'steps-pre' | 'steps-mid' | 'steps-post']
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --plotting_position PLOTTING_POSITION
                        [optional, default is 'weibull']
                        
                        +------------+--------+----------------------+--------------------+
                        | Name       | a      | Equation             | Description        |
                        |            |        | (i-a)/(n+1-2*a)      |                    |
                        +============+========+======================+====================+
                        | weibull    | 0      | i/(n+1)              | mean of sampling   |
                        | (default)  |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | filliben   | 0.3175 | (i-0.3175)/(n+0.365) |                    |
                        +------------+--------+----------------------+--------------------+
                        | yu         | 0.326  | (i-0.326)/(n+0.348)  |                    |
                        +------------+--------+----------------------+--------------------+
                        | tukey      | 1/3    | (i-1/3)/(n+1/3)      | approx. median of  |
                        |            |        |                      | sampling           |
                        |            |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | blom       | 0.375  | (i-0.375)/(n+0.25)   |                    |
                        +------------+--------+----------------------+--------------------+
                        | cunnane    | 2/5    | (i-2/5)/(n+1/5)      | subjective         |
                        +------------+--------+----------------------+--------------------+
                        | gringorton | 0.44   | (1-0.44)/(n+0.12)    |                    |
                        +------------+--------+----------------------+--------------------+
                        | hazen      | 1/2    | (i-1/2)/n            | midpoints of n     |
                        |            |        |                      | equal intervals    |
                        +------------+--------+----------------------+--------------------+
                        | larsen     | 0.567  | (i-0.567)/(n-0.134)  |                    |
                        +------------+--------+----------------------+--------------------+
                        | gumbel     | 1      | (i-1)/(n-1)          | mode of sampling   |
                        |            |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | california | NA     | i/n                  |                    |
                        +------------+--------+----------------------+--------------------+
                        
                        Where 'i' is the sorted rank of the y value, and 'n' is the total
                        number of values to be plotted.
                        
                        The 'blom' plotting position is also known as the 'Sevruk and
                        Geiger'.
                        
                        Only used for norm_xaxis, norm_yaxis, lognorm_xaxis,
                        lognorm_yaxis, weibull_xaxis, and weibull_yaxis.
  --prob_plot_sort_values PROB_PLOT_SORT_VALUES
                        [optional, default is 'descending']
                        
                        How to sort the values for the probability plots.
                        
                        Only used for norm_xaxis, norm_yaxis, lognorm_xaxis,
                        lognorm_yaxis, weibull_xaxis, and weibull_yaxis.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

norm_yaxis

$ plottoolbox norm_yaxis --help
usage: plottoolbox norm_yaxis [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                              [--start_date START_DATE] [--end_date END_DATE]
                              [--clean] [--skiprows SKIPROWS]
                              [--index_type INDEX_TYPE] [--names NAMES]
                              [--ofilename OFILENAME] [--xtitle XTITLE]
                              [--ytitle YTITLE] [--title TITLE]
                              [--figsize FIGSIZE] [--legend LEGEND]
                              [--legend_names LEGEND_NAMES] [--colors COLORS]
                              [--linestyles LINESTYLES]
                              [--markerstyles MARKERSTYLES] [--style STYLE]
                              [--xaxis XAXIS] [--yaxis YAXIS] [--xlim XLIM]
                              [--ylim YLIM] [--grid] [--drawstyle DRAWSTYLE]
                              [--por] [--invert_xaxis] [--invert_yaxis]
                              [--round_index ROUND_INDEX] [--dropna DROPNA]
                              [--plotting_position PLOTTING_POSITION]
                              [--prob_plot_sort_values PROB_PLOT_SORT_VALUES]
                              [--source_units SOURCE_UNITS]
                              [--target_units TARGET_UNITS]
                              [--plot_styles PLOT_STYLES]
                              [--hlines_y HLINES_Y]
                              [--hlines_xmin HLINES_XMIN]
                              [--hlines_xmax HLINES_XMAX]
                              [--hlines_colors HLINES_COLORS]
                              [--hlines_linestyles HLINES_LINESTYLES]
                              [--vlines_x VLINES_X]
                              [--vlines_ymin VLINES_YMIN]
                              [--vlines_ymax VLINES_YMAX]
                              [--vlines_colors VLINES_COLORS]
                              [--vlines_linestyles VLINES_LINESTYLES]

"norm_yaxis" will sort, calculate probabilities, and plot data against an
y axis normal distribution.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --drawstyle DRAWSTYLE
                        [optional, default is 'default']
                        
                        'default' connects the points with lines. The
                        steps variants produce step-plots. 'steps' is equivalent to 'steps-pre'
                        and is maintained for backward-compatibility.
                        
                        ACCEPTS::
                        
                         ['default' | 'steps' | 'steps-pre' | 'steps-mid' | 'steps-post']
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --plotting_position PLOTTING_POSITION
                        [optional, default is 'weibull']
                        
                        +------------+--------+----------------------+--------------------+
                        | Name       | a      | Equation             | Description        |
                        |            |        | (i-a)/(n+1-2*a)      |                    |
                        +============+========+======================+====================+
                        | weibull    | 0      | i/(n+1)              | mean of sampling   |
                        | (default)  |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | filliben   | 0.3175 | (i-0.3175)/(n+0.365) |                    |
                        +------------+--------+----------------------+--------------------+
                        | yu         | 0.326  | (i-0.326)/(n+0.348)  |                    |
                        +------------+--------+----------------------+--------------------+
                        | tukey      | 1/3    | (i-1/3)/(n+1/3)      | approx. median of  |
                        |            |        |                      | sampling           |
                        |            |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | blom       | 0.375  | (i-0.375)/(n+0.25)   |                    |
                        +------------+--------+----------------------+--------------------+
                        | cunnane    | 2/5    | (i-2/5)/(n+1/5)      | subjective         |
                        +------------+--------+----------------------+--------------------+
                        | gringorton | 0.44   | (1-0.44)/(n+0.12)    |                    |
                        +------------+--------+----------------------+--------------------+
                        | hazen      | 1/2    | (i-1/2)/n            | midpoints of n     |
                        |            |        |                      | equal intervals    |
                        +------------+--------+----------------------+--------------------+
                        | larsen     | 0.567  | (i-0.567)/(n-0.134)  |                    |
                        +------------+--------+----------------------+--------------------+
                        | gumbel     | 1      | (i-1)/(n-1)          | mode of sampling   |
                        |            |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | california | NA     | i/n                  |                    |
                        +------------+--------+----------------------+--------------------+
                        
                        Where 'i' is the sorted rank of the y value, and 'n' is the total
                        number of values to be plotted.
                        
                        The 'blom' plotting position is also known as the 'Sevruk and
                        Geiger'.
                        
                        Only used for norm_xaxis, norm_yaxis, lognorm_xaxis,
                        lognorm_yaxis, weibull_xaxis, and weibull_yaxis.
  --prob_plot_sort_values PROB_PLOT_SORT_VALUES
                        [optional, default is 'descending']
                        
                        How to sort the values for the probability plots.
                        
                        Only used for norm_xaxis, norm_yaxis, lognorm_xaxis,
                        lognorm_yaxis, weibull_xaxis, and weibull_yaxis.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

probability_density

$ plottoolbox probability_density --help
usage: plottoolbox probability_density [-h] [--input_ts INPUT_TS]
                                       [--columns COLUMNS]
                                       [--start_date START_DATE]
                                       [--end_date END_DATE] [--clean]
                                       [--skiprows SKIPROWS]
                                       [--index_type INDEX_TYPE]
                                       [--names NAMES] [--ofilename OFILENAME]
                                       [--xtitle XTITLE] [--ytitle YTITLE]
                                       [--title TITLE] [--figsize FIGSIZE]
                                       [--legend LEGEND]
                                       [--legend_names LEGEND_NAMES]
                                       [--subplots] [--sharex] [--sharey]
                                       [--colors COLORS]
                                       [--linestyles LINESTYLES]
                                       [--markerstyles MARKERSTYLES]
                                       [--style STYLE] [--xaxis XAXIS]
                                       [--yaxis YAXIS] [--xlim XLIM]
                                       [--ylim YLIM] [--secondary_y] [--grid]
                                       [--por] [--invert_xaxis]
                                       [--invert_yaxis]
                                       [--round_index ROUND_INDEX]
                                       [--dropna DROPNA]
                                       [--source_units SOURCE_UNITS]
                                       [--target_units TARGET_UNITS]
                                       [--plot_styles PLOT_STYLES]
                                       [--hlines_y HLINES_Y]
                                       [--hlines_xmin HLINES_XMIN]
                                       [--hlines_xmax HLINES_XMAX]
                                       [--hlines_colors HLINES_COLORS]
                                       [--hlines_linestyles HLINES_LINESTYLES]
                                       [--vlines_x VLINES_X]
                                       [--vlines_ymin VLINES_YMIN]
                                       [--vlines_ymax VLINES_YMAX]
                                       [--vlines_colors VLINES_COLORS]
                                       [--vlines_linestyles VLINES_LINESTYLES]

Probability plot.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --subplots            [optional, defaults to False]
                        
                        Make separate subplots for each time series.
  --sharex              [optional, default to True]
                        
                        In case subplots=True, share x axis.
  --sharey              [optional, default to False]
                        
                        In case subplots=True, share y axis.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --secondary_y         secondary
                            [optional, default is False]
                        
                            * list/tuple: Give the column numbers or names to plot on secondary
                              y-axis.
                            * (string, string): The first string is the units of the primary axis,
                              the second string is the units of the secondary axis if you want just
                              unit conversion.  Use any units or combination thereof from the
                              "pint" library.
                            * (callable, callable): Functions relating relationship between
                              primary and secondary axis.  First function will be given the values
                              on primary axis and returns values on secondary axis.  Second function
                              will be do the inverse.  Python API only.
                            * string: One of pre-built (callable, callable) combinations.  Can be
                              one of "period".
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

scatter_matrix

$ plottoolbox scatter_matrix --help
usage: plottoolbox scatter_matrix [-h] [--input_ts INPUT_TS]
                                  [--columns COLUMNS]
                                  [--start_date START_DATE]
                                  [--end_date END_DATE] [--clean]
                                  [--skiprows SKIPROWS]
                                  [--index_type INDEX_TYPE] [--names NAMES]
                                  [--ofilename OFILENAME] [--xtitle XTITLE]
                                  [--ytitle YTITLE] [--title TITLE]
                                  [--figsize FIGSIZE] [--legend LEGEND]
                                  [--legend_names LEGEND_NAMES]
                                  [--colors COLORS] [--linestyles LINESTYLES]
                                  [--markerstyles MARKERSTYLES]
                                  [--style STYLE]
                                  [--scatter_matrix_diagonal SCATTER_MATRIX_DIAGONAL]
                                  [--grid] [--por] [--invert_xaxis]
                                  [--invert_yaxis] [--round_index ROUND_INDEX]
                                  [--dropna DROPNA]
                                  [--source_units SOURCE_UNITS]
                                  [--target_units TARGET_UNITS]
                                  [--plot_styles PLOT_STYLES]
                                  [--hlines_y HLINES_Y]
                                  [--hlines_xmin HLINES_XMIN]
                                  [--hlines_xmax HLINES_XMAX]
                                  [--hlines_colors HLINES_COLORS]
                                  [--hlines_linestyles HLINES_LINESTYLES]
                                  [--vlines_x VLINES_X]
                                  [--vlines_ymin VLINES_YMIN]
                                  [--vlines_ymax VLINES_YMAX]
                                  [--vlines_colors VLINES_COLORS]
                                  [--vlines_linestyles VLINES_LINESTYLES]

"scatter_matrix" will plots all columns against each other in a matrix,
with the diagonal plots either histogram or KDE probability distribution
depending on `scatter_matrix_diagonal` keyword.

Data must be organized as 'index,y1,y2,y3,...,yN'.  The 'index' is
            ignored and all data columns are plotted.  The "columns" keyword
            can be used to duplicate or change the order of all the data
            columns.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --scatter_matrix_diagonal SCATTER_MATRIX_DIAGONAL
                        [optional, defaults to "kde"]
                        
                        What to plot on the diagonal of the scatter matrix.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

target

$ plottoolbox target --help
usage: plottoolbox target [-h] [--obs_col OBS_COL] [--sim_col SIM_COL]
                          [--input_ts INPUT_TS] [--columns COLUMNS]
                          [--start_date START_DATE] [--end_date END_DATE]
                          [--clean] [--skiprows SKIPROWS]
                          [--index_type INDEX_TYPE] [--names NAMES]
                          [--ofilename OFILENAME] [--title TITLE]
                          [--figsize FIGSIZE] [--legend LEGEND]
                          [--legend_names LEGEND_NAMES] [--colors COLORS]
                          [--linestyles LINESTYLES]
                          [--markerstyles MARKERSTYLES] [--style STYLE]
                          [--por] [--round_index ROUND_INDEX]
                          [--dropna DROPNA] [--source_units SOURCE_UNITS]
                          [--target_units TARGET_UNITS]
                          [--plot_styles PLOT_STYLES]

"target" creates a target diagram that compares three goodness of fit
statistics on one plot.  The three goodness of fit statistics calculated
and displayed are bias, root mean square deviation, and centered root mean
square deviation.  The data columns have to be organized as
'observed,simulated1,simulated2,simulated3,...etc.'

options:
  -h, --help            show this help message and exit
  --obs_col OBS_COL     If integer represents the column number of standard input. Can be
                        If integer represents the column number of standard input. Can be
                        a csv, wdm, hdf or xlsx file following format specified in
                        'tstoolbox read ...'.
  --sim_col SIM_COL     If integer represents the column number of standard input. Can be
                        a csv, wdm, hdf or xlsx file following format specified in
                        'tstoolbox read ...'.
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots

taylor

$ plottoolbox taylor --help
usage: plottoolbox taylor [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                          [--start_date START_DATE] [--end_date END_DATE]
                          [--clean] [--skiprows SKIPROWS]
                          [--index_type INDEX_TYPE] [--names NAMES]
                          [--ofilename OFILENAME] [--title TITLE]
                          [--figsize FIGSIZE] [--legend LEGEND]
                          [--legend_names LEGEND_NAMES] [--colors COLORS]
                          [--linestyles LINESTYLES]
                          [--markerstyles MARKERSTYLES] [--style STYLE]
                          [--por] [--round_index ROUND_INDEX]
                          [--dropna DROPNA] [--source_units SOURCE_UNITS]
                          [--target_units TARGET_UNITS]
                          [--plot_styles PLOT_STYLES]

"taylor" will create a taylor diagram that compares three goodness of fit
statistics on one plot.  The three goodness of fit statistics calculated
and displayed are standard deviation, correlation coefficient, and centered
root mean square deviation.  The data columns have to be organized as
'observed,simulated1,simulated2,simulated3,...etc.'

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots

time

$ plottoolbox time --help
usage: plottoolbox time [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                        [--start_date START_DATE] [--end_date END_DATE]
                        [--clean] [--skiprows SKIPROWS]
                        [--index_type INDEX_TYPE] [--names NAMES]
                        [--ofilename OFILENAME] [--xtitle XTITLE]
                        [--ytitle YTITLE] [--title TITLE] [--figsize FIGSIZE]
                        [--legend LEGEND] [--legend_names LEGEND_NAMES]
                        [--subplots] [--sharex] [--sharey] [--colors COLORS]
                        [--linestyles LINESTYLES]
                        [--markerstyles MARKERSTYLES] [--style STYLE]
                        [--xaxis XAXIS] [--yaxis YAXIS] [--xlim XLIM]
                        [--ylim YLIM] [--secondary_y SECONDARY_Y]
                        [--mark_right] [--grid] [--drawstyle DRAWSTYLE]
                        [--por] [--invert_xaxis] [--invert_yaxis]
                        [--round_index ROUND_INDEX] [--dropna DROPNA]
                        [--source_units SOURCE_UNITS]
                        [--target_units TARGET_UNITS]
                        [--plot_styles PLOT_STYLES] [--hlines_y HLINES_Y]
                        [--hlines_xmin HLINES_XMIN]
                        [--hlines_xmax HLINES_XMAX]
                        [--hlines_colors HLINES_COLORS]
                        [--hlines_linestyles HLINES_LINESTYLES]
                        [--vlines_x VLINES_X] [--vlines_ymin VLINES_YMIN]
                        [--vlines_ymax VLINES_YMAX]
                        [--vlines_colors VLINES_COLORS]
                        [--vlines_linestyles VLINES_LINESTYLES]

"time" creates a standard time series plot.

Data must be organized as 'index,y1,y2,y3,...,yN'.  The 'index' must be
a date/time and all data columns are plotted.  Legend names are taken from
the column names in the first row unless over-ridden by the `legend_names`
keyword.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --subplots            [optional, defaults to False]
                        
                        Make separate subplots for each time series.
  --sharex              [optional, default to True]
                        
                        In case subplots=True, share x axis.
  --sharey              [optional, default to False]
                        
                        In case subplots=True, share y axis.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --secondary_y SECONDARY_Y
                        secondary
                            [optional, default is False]
                        
                            * list/tuple: Give the column numbers or names to plot on secondary
                              y-axis.
                            * (string, string): The first string is the units of the primary axis,
                              the second string is the units of the secondary axis if you want just
                              unit conversion.  Use any units or combination thereof from the
                              "pint" library.
                            * (callable, callable): Functions relating relationship between
                              primary and secondary axis.  First function will be given the values
                              on primary axis and returns values on secondary axis.  Second function
                              will be do the inverse.  Python API only.
                            * string: One of pre-built (callable, callable) combinations.  Can be
                              one of "period".
  --mark_right          [optional, default is True]
                        
                        When using a secondary_y axis, should the legend label the axis of the
                        various time-series automatically.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --drawstyle DRAWSTYLE
                        [optional, default is 'default']
                        
                        'default' connects the points with lines. The
                        steps variants produce step-plots. 'steps' is equivalent to 'steps-pre'
                        and is maintained for backward-compatibility.
                        
                        ACCEPTS::
                        
                         ['default' | 'steps' | 'steps-pre' | 'steps-mid' | 'steps-post']
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

waterfall

$ plottoolbox waterfall --help
usage: plottoolbox waterfall [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                             [--start_date START_DATE] [--end_date END_DATE]
                             [--clean] [--skiprows SKIPROWS]
                             [--index_type INDEX_TYPE] [--names NAMES]
                             [--ofilename OFILENAME] [--xtitle XTITLE]
                             [--ytitle YTITLE] [--title TITLE]
                             [--figsize FIGSIZE] [--legend LEGEND]
                             [--legend_names LEGEND_NAMES] [--colors COLORS]
                             [--linestyles LINESTYLES]
                             [--markerstyles MARKERSTYLES] [--style STYLE]
                             [--xaxis XAXIS] [--yaxis YAXIS] [--xlim XLIM]
                             [--ylim YLIM] [--grid] [--drawstyle DRAWSTYLE]
                             [--por] [--invert_xaxis] [--invert_yaxis]
                             [--round_index ROUND_INDEX] [--dropna DROPNA]
                             [--plotting_position PLOTTING_POSITION]
                             [--prob_plot_sort_values PROB_PLOT_SORT_VALUES]
                             [--source_units SOURCE_UNITS]
                             [--target_units TARGET_UNITS]
                             [--plot_styles PLOT_STYLES] [--hlines_y HLINES_Y]
                             [--hlines_xmin HLINES_XMIN]
                             [--hlines_xmax HLINES_XMAX]
                             [--hlines_colors HLINES_COLORS]
                             [--hlines_linestyles HLINES_LINESTYLES]
                             [--vlines_x VLINES_X] [--vlines_ymin VLINES_YMIN]
                             [--vlines_ymax VLINES_YMAX]
                             [--vlines_colors VLINES_COLORS]
                             [--vlines_linestyles VLINES_LINESTYLES]

Create a waterfall plot from a time series.

Data must be organized as 'index,y1,y2,y3,...,yN'.  The 'index' must be
a date/time and all data columns are plotted.  Legend names are taken from
the column names in the first row unless over-ridden by the `legend_names`
keyword.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --drawstyle DRAWSTYLE
                        [optional, default is 'default']
                        
                        'default' connects the points with lines. The
                        steps variants produce step-plots. 'steps' is equivalent to 'steps-pre'
                        and is maintained for backward-compatibility.
                        
                        ACCEPTS::
                        
                         ['default' | 'steps' | 'steps-pre' | 'steps-mid' | 'steps-post']
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA
  --plotting_position PLOTTING_POSITION
  --prob_plot_sort_values PROB_PLOT_SORT_VALUES
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

weibull_xaxis

$ plottoolbox weibull_xaxis --help
usage: plottoolbox weibull_xaxis [-h] [--input_ts INPUT_TS]
                                 [--columns COLUMNS] [--start_date START_DATE]
                                 [--end_date END_DATE] [--clean]
                                 [--skiprows SKIPROWS]
                                 [--index_type INDEX_TYPE] [--names NAMES]
                                 [--ofilename OFILENAME] [--xtitle XTITLE]
                                 [--ytitle YTITLE] [--title TITLE]
                                 [--figsize FIGSIZE] [--legend LEGEND]
                                 [--legend_names LEGEND_NAMES]
                                 [--colors COLORS] [--linestyles LINESTYLES]
                                 [--markerstyles MARKERSTYLES] [--style STYLE]
                                 [--xaxis XAXIS] [--yaxis YAXIS] [--xlim XLIM]
                                 [--ylim YLIM] [--grid]
                                 [--drawstyle DRAWSTYLE] [--por]
                                 [--invert_xaxis] [--invert_yaxis]
                                 [--round_index ROUND_INDEX] [--dropna DROPNA]
                                 [--plotting_position PLOTTING_POSITION]
                                 [--prob_plot_sort_values PROB_PLOT_SORT_VALUES]
                                 [--source_units SOURCE_UNITS]
                                 [--target_units TARGET_UNITS]
                                 [--plot_styles PLOT_STYLES]
                                 [--hlines_y HLINES_Y]
                                 [--hlines_xmin HLINES_XMIN]
                                 [--hlines_xmax HLINES_XMAX]
                                 [--hlines_colors HLINES_COLORS]
                                 [--hlines_linestyles HLINES_LINESTYLES]
                                 [--vlines_x VLINES_X]
                                 [--vlines_ymin VLINES_YMIN]
                                 [--vlines_ymax VLINES_YMAX]
                                 [--vlines_colors VLINES_COLORS]
                                 [--vlines_linestyles VLINES_LINESTYLES]

"weibull_xaxis" will sort, calculate and plot data against an y axis
weibull distribution.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --drawstyle DRAWSTYLE
                        [optional, default is 'default']
                        
                        'default' connects the points with lines. The
                        steps variants produce step-plots. 'steps' is equivalent to 'steps-pre'
                        and is maintained for backward-compatibility.
                        
                        ACCEPTS::
                        
                         ['default' | 'steps' | 'steps-pre' | 'steps-mid' | 'steps-post']
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --plotting_position PLOTTING_POSITION
                        [optional, default is 'weibull']
                        
                        +------------+--------+----------------------+--------------------+
                        | Name       | a      | Equation             | Description        |
                        |            |        | (i-a)/(n+1-2*a)      |                    |
                        +============+========+======================+====================+
                        | weibull    | 0      | i/(n+1)              | mean of sampling   |
                        | (default)  |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | filliben   | 0.3175 | (i-0.3175)/(n+0.365) |                    |
                        +------------+--------+----------------------+--------------------+
                        | yu         | 0.326  | (i-0.326)/(n+0.348)  |                    |
                        +------------+--------+----------------------+--------------------+
                        | tukey      | 1/3    | (i-1/3)/(n+1/3)      | approx. median of  |
                        |            |        |                      | sampling           |
                        |            |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | blom       | 0.375  | (i-0.375)/(n+0.25)   |                    |
                        +------------+--------+----------------------+--------------------+
                        | cunnane    | 2/5    | (i-2/5)/(n+1/5)      | subjective         |
                        +------------+--------+----------------------+--------------------+
                        | gringorton | 0.44   | (1-0.44)/(n+0.12)    |                    |
                        +------------+--------+----------------------+--------------------+
                        | hazen      | 1/2    | (i-1/2)/n            | midpoints of n     |
                        |            |        |                      | equal intervals    |
                        +------------+--------+----------------------+--------------------+
                        | larsen     | 0.567  | (i-0.567)/(n-0.134)  |                    |
                        +------------+--------+----------------------+--------------------+
                        | gumbel     | 1      | (i-1)/(n-1)          | mode of sampling   |
                        |            |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | california | NA     | i/n                  |                    |
                        +------------+--------+----------------------+--------------------+
                        
                        Where 'i' is the sorted rank of the y value, and 'n' is the total
                        number of values to be plotted.
                        
                        The 'blom' plotting position is also known as the 'Sevruk and
                        Geiger'.
                        
                        Only used for norm_xaxis, norm_yaxis, lognorm_xaxis,
                        lognorm_yaxis, weibull_xaxis, and weibull_yaxis.
  --prob_plot_sort_values PROB_PLOT_SORT_VALUES
                        [optional, default is 'descending']
                        
                        How to sort the values for the probability plots.
                        
                        Only used for norm_xaxis, norm_yaxis, lognorm_xaxis,
                        lognorm_yaxis, weibull_xaxis, and weibull_yaxis.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

weibull_yaxis

$ plottoolbox weibull_yaxis --help
usage: plottoolbox weibull_yaxis [-h] [--input_ts INPUT_TS]
                                 [--columns COLUMNS] [--start_date START_DATE]
                                 [--end_date END_DATE] [--clean]
                                 [--skiprows SKIPROWS]
                                 [--index_type INDEX_TYPE] [--names NAMES]
                                 [--ofilename OFILENAME] [--xtitle XTITLE]
                                 [--ytitle YTITLE] [--title TITLE]
                                 [--figsize FIGSIZE] [--legend LEGEND]
                                 [--legend_names LEGEND_NAMES]
                                 [--colors COLORS] [--linestyles LINESTYLES]
                                 [--markerstyles MARKERSTYLES] [--style STYLE]
                                 [--xaxis XAXIS] [--yaxis YAXIS] [--xlim XLIM]
                                 [--ylim YLIM] [--grid]
                                 [--drawstyle DRAWSTYLE] [--por]
                                 [--invert_xaxis] [--invert_yaxis]
                                 [--round_index ROUND_INDEX] [--dropna DROPNA]
                                 [--plotting_position PLOTTING_POSITION]
                                 [--prob_plot_sort_values PROB_PLOT_SORT_VALUES]
                                 [--source_units SOURCE_UNITS]
                                 [--target_units TARGET_UNITS]
                                 [--plot_styles PLOT_STYLES]
                                 [--hlines_y HLINES_Y]
                                 [--hlines_xmin HLINES_XMIN]
                                 [--hlines_xmax HLINES_XMAX]
                                 [--hlines_colors HLINES_COLORS]
                                 [--hlines_linestyles HLINES_LINESTYLES]
                                 [--vlines_x VLINES_X]
                                 [--vlines_ymin VLINES_YMIN]
                                 [--vlines_ymax VLINES_YMAX]
                                 [--vlines_colors VLINES_COLORS]
                                 [--vlines_linestyles VLINES_LINESTYLES]

"weibull_yaxis" will sort, calculate and plot data against an y axis
weibull distribution.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --drawstyle DRAWSTYLE
                        [optional, default is 'default']
                        
                        'default' connects the points with lines. The
                        steps variants produce step-plots. 'steps' is equivalent to 'steps-pre'
                        and is maintained for backward-compatibility.
                        
                        ACCEPTS::
                        
                         ['default' | 'steps' | 'steps-pre' | 'steps-mid' | 'steps-post']
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --plotting_position PLOTTING_POSITION
                        [optional, default is 'weibull']
                        
                        +------------+--------+----------------------+--------------------+
                        | Name       | a      | Equation             | Description        |
                        |            |        | (i-a)/(n+1-2*a)      |                    |
                        +============+========+======================+====================+
                        | weibull    | 0      | i/(n+1)              | mean of sampling   |
                        | (default)  |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | filliben   | 0.3175 | (i-0.3175)/(n+0.365) |                    |
                        +------------+--------+----------------------+--------------------+
                        | yu         | 0.326  | (i-0.326)/(n+0.348)  |                    |
                        +------------+--------+----------------------+--------------------+
                        | tukey      | 1/3    | (i-1/3)/(n+1/3)      | approx. median of  |
                        |            |        |                      | sampling           |
                        |            |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | blom       | 0.375  | (i-0.375)/(n+0.25)   |                    |
                        +------------+--------+----------------------+--------------------+
                        | cunnane    | 2/5    | (i-2/5)/(n+1/5)      | subjective         |
                        +------------+--------+----------------------+--------------------+
                        | gringorton | 0.44   | (1-0.44)/(n+0.12)    |                    |
                        +------------+--------+----------------------+--------------------+
                        | hazen      | 1/2    | (i-1/2)/n            | midpoints of n     |
                        |            |        |                      | equal intervals    |
                        +------------+--------+----------------------+--------------------+
                        | larsen     | 0.567  | (i-0.567)/(n-0.134)  |                    |
                        +------------+--------+----------------------+--------------------+
                        | gumbel     | 1      | (i-1)/(n-1)          | mode of sampling   |
                        |            |        |                      | distribution       |
                        +------------+--------+----------------------+--------------------+
                        | california | NA     | i/n                  |                    |
                        +------------+--------+----------------------+--------------------+
                        
                        Where 'i' is the sorted rank of the y value, and 'n' is the total
                        number of values to be plotted.
                        
                        The 'blom' plotting position is also known as the 'Sevruk and
                        Geiger'.
                        
                        Only used for norm_xaxis, norm_yaxis, lognorm_xaxis,
                        lognorm_yaxis, weibull_xaxis, and weibull_yaxis.
  --prob_plot_sort_values PROB_PLOT_SORT_VALUES
                        [optional, default is 'descending']
                        
                        How to sort the values for the probability plots.
                        
                        Only used for norm_xaxis, norm_yaxis, lognorm_xaxis,
                        lognorm_yaxis, weibull_xaxis, and weibull_yaxis.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.

xy

$ plottoolbox xy --help
usage: plottoolbox xy [-h] [--input_ts INPUT_TS] [--columns COLUMNS]
                      [--start_date START_DATE] [--end_date END_DATE]
                      [--clean] [--skiprows SKIPROWS]
                      [--index_type INDEX_TYPE] [--names NAMES]
                      [--ofilename OFILENAME] [--xtitle XTITLE]
                      [--ytitle YTITLE] [--title TITLE] [--figsize FIGSIZE]
                      [--legend LEGEND] [--legend_names LEGEND_NAMES]
                      [--colors COLORS] [--linestyles LINESTYLES]
                      [--markerstyles MARKERSTYLES] [--style STYLE]
                      [--xaxis XAXIS] [--yaxis YAXIS] [--xlim XLIM]
                      [--ylim YLIM] [--xy_match_line XY_MATCH_LINE] [--grid]
                      [--drawstyle DRAWSTYLE] [--por] [--invert_xaxis]
                      [--invert_yaxis] [--round_index ROUND_INDEX]
                      [--dropna DROPNA] [--source_units SOURCE_UNITS]
                      [--target_units TARGET_UNITS]
                      [--plot_styles PLOT_STYLES] [--hlines_y HLINES_Y]
                      [--hlines_xmin HLINES_XMIN] [--hlines_xmax HLINES_XMAX]
                      [--hlines_colors HLINES_COLORS]
                      [--hlines_linestyles HLINES_LINESTYLES]
                      [--vlines_x VLINES_X] [--vlines_ymin VLINES_YMIN]
                      [--vlines_ymax VLINES_YMAX]
                      [--vlines_colors VLINES_COLORS]
                      [--vlines_linestyles VLINES_LINESTYLES]

If the input 'x,y' dataset(s) is organized as
            'index,x1,y1,x2,y2,x3,y3,...,xN,yN' then the 'index' is ignored.
            If there is one 'x,y' dataset then it can be organized as 'index,y'
            where 'index' is used for 'x'.  The "columns" keyword can be used
            to duplicate or change the order of all the data columns.

options:
  -h, --help            show this help message and exit
  --input_ts INPUT_TS   [optional though required if using within Python, default is '-'
                        (stdin)]
                        
                        Whether from a file or standard input, data requires a single line
                        header of column names.  The default header is the first line of
                        the input, but this can be changed for CSV files using the
                        'skiprows' option.
                        
                        Most common date formats can be used, but the closer to ISO 8601
                        date/time standard the better.
                        
                        Comma-separated values (CSV) files or tab-separated values (TSV)::
                        
                            File separators will be automatically detected.
                        
                            Columns can be selected by name or index, where the index for
                            data columns starts at 1.
                        
                        Command line examples:
                        
                            +---------------------------------+---------------------------+
                            | Keyword Example                 | Description               |
                            +=================================+===========================+
                            | --input_ts=fn.csv               | read all columns from     |
                            |                                 | 'fn.csv'                  |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,1           | read data columns 2 and 1 |
                            |                                 | from 'fn.csv'             |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.csv,2,skiprows=2  | read data column 2 from   |
                            |                                 | 'fn.csv', skipping first  |
                            |                                 | 2 rows so header is read  |
                            |                                 | from third row            |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.xlsx,2,Sheet21    | read all data from 2nd    |
                            |                                 | sheet all data from       |
                            |                                 | "Sheet21" of 'fn.xlsx'    |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.hdf5,Table12,T2   | read all data from table  |
                            |                                 | "Table12" then all data   |
                            |                                 | from table "T2" of        |
                            |                                 | 'fn.hdf5'                 |
                            +---------------------------------+---------------------------+
                            | --input_ts=fn.wdm,210,110       | read DSNs 210, then 110   |
                            |                                 | from 'fn.wdm'             |
                            +---------------------------------+---------------------------+
                            | --input_ts='-'                  | read all columns from     |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                            | --input_ts='-' --columns=4,1    | read column 4 and 1 from  |
                            |                                 | standard input (stdin)    |
                            +---------------------------------+---------------------------+
                        
                        If working with CSV or TSV files you can use redirection rather
                        than use `--input_ts=fname.csv`.  The following are identical:
                        
                        From a file:
                        
                            command subcmd --input_ts=fname.csv
                        
                        From standard input (since '--input_ts=-' is the default:
                        
                            command subcmd < fname.csv
                        
                        Can also combine commands by piping:
                        
                            command subcmd < filein.csv | command subcmd1 > fileout.csv
                        
                        Python library examples::
                        
                            You must use the `input_ts=...` option where `input_ts` can be
                            one of a [pandas DataFrame, pandas Series, dict, tuple, list,
                            StringIO, or file name].
  --columns COLUMNS     [optional, defaults to all columns, input filter]
                        
                        Columns to select out of input.  Can use column names from the
                        first line header or column numbers.  If using numbers, column
                        number 1 is the first data column.  To pick multiple columns;
                        separate by commas with no spaces. As used in `toolbox_utils pick`
                        command.
                        
                        This solves a big problem so that you don't have to create a data
                        set with a certain column order, you can rearrange columns when
                        data is read in.
  --start_date START_DATE
                        [optional, defaults to first date in time-series, input filter]
                        
                        The start_date of the series in ISOdatetime format, or 'None' for
                        beginning.
  --end_date END_DATE   [optional, defaults to last date in time-series, input filter]
                        
                        The end_date of the series in ISOdatetime format, or 'None' for
                        end.
  --clean               [optional, default is False, input filter]
                        
                        The 'clean' command will repair a input index, removing duplicate
                        index values and sorting.
  --skiprows SKIPROWS   [optional, default is None which will infer header from first line,
                        input filter]
                        
                        Line numbers to skip (0-indexed) if a list or number of lines to
                        skip at the start of the file if an integer.
                        
                        If used in Python can be a callable, the callable function will be
                        evaluated against the row indices, returning True if the row should
                        be skipped and False otherwise.  An example of a valid callable
                        argument would be
                        
                        ``lambda x: x in [0, 2]``.
  --index_type INDEX_TYPE
                        [optional, default is 'datetime', output format]
                        
                        Can be either 'number' or 'datetime'.  Use 'number' with index
                        values that are Julian dates, or other epoch reference.
  --names NAMES         [optional, default is None, transformation]
                        
                        If None, the column names are taken from the first row after
                        'skiprows' from the input dataset.
                        
                        MUST include a name for all columns in the input dataset, including
                        the index column.
  --ofilename OFILENAME
                        [optional, defaults to 'plot.png']
                        
                        Output filename for the plot.  Extension defines
                        the type, for example 'filename.png' will create a PNG file.
                        
                        If used within Python, and `ofilename` is None will return the
                        Matplotlib figure that can then be changed or added to as
                        needed.
  --xtitle XTITLE       [optional, default depends on type]
                        
                        Title of x-axis.
  --ytitle YTITLE       [optional, default depends on type]
                        
                        Title of y-axis.
  --title TITLE         [optional, defaults to '']
                        
                        Title of chart.
  --figsize FIGSIZE     [optional, defaults to '10,6.5']
                        
                        The 'width,height' of plot in inches.
  --legend LEGEND       [optional, default is True]
                        
                        Whether to create a legend or not.
  --legend_names LEGEND_NAMES
                        [optional, default is None]
                        
                        If the default of None will take legend names from columns tiles in the
                        input dataset.  Otherwise will take names from the `legend_names`
                        list.
  --colors COLORS       [optional, default is 'auto']
                        
                        The default 'auto' will cycle through matplotlib colors in the chosen
                        style.
                        
                        At the command line supply a comma separated matplotlib
                        color codes, or within Python a list of color code strings.
                        
                        Can identify colors in four different ways.
                        
                        1. Use 'CN' where N is a number from 0 to 9 that gets the Nth color
                        from the current style.
                        
                        2. Single character code from the table
                        below.
                        
                        +------+---------+
                        | Code | Color   |
                        +======+=========+
                        | b    | blue    |
                        +------+---------+
                        | g    | green   |
                        +------+---------+
                        | r    | red     |
                        +------+---------+
                        | c    | cyan    |
                        +------+---------+
                        | m    | magenta |
                        +------+---------+
                        | y    | yellow  |
                        +------+---------+
                        | k    | black   |
                        +------+---------+
                        
                        3. Number between 0 and 1 that represents the level of gray, where 0 is
                        white an 1 is black.
                        
                        4. Any of the HTML color
                        names.
                        
                        +------------------+
                        | HTML Color Names |
                        +==================+
                        | red              |
                        +------------------+
                        | burlywood        |
                        +------------------+
                        | chartreuse       |
                        +------------------+
                        | ...etc.          |
                        +------------------+
                        
                        Color reference:
                        http://matplotlib.org/api/colors_api.html
  --linestyles LINESTYLES
                        [optional, default to 'auto']
                        
                        If 'auto' will iterate through the available matplotlib line types.
                        Otherwise on the command line a comma separated list, or a list of
                        strings if using the Python API.
                        
                        To not display lines use a space (' ') as the linestyle code.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +---------+--------------+
                        | Code    | Lines        |
                        +=========+==============+
                        | ``-``   | solid        |
                        +---------+--------------+
                        | --      | dashed       |
                        +---------+--------------+
                        | -.      | dash_dot     |
                        +---------+--------------+
                        | :       | dotted       |
                        +---------+--------------+
                        | None    | draw nothing |
                        +---------+--------------+
                        | ' '     | draw nothing |
                        +---------+--------------+
                        | ''      | draw nothing |
                        +---------+--------------+
                        
                        Line reference:
                        http://matplotlib.org/api/artist_api.html
  --markerstyles MARKERSTYLES
                        [optional, default to ' ']
                        
                        The default ' ' will not plot a marker.  If 'auto' will iterate through
                        the available matplotlib marker types.  Otherwise on the command line
                        a comma separated list, or a list of strings if using the Python API.
                        
                        Separated 'colors', 'linestyles', and 'markerstyles' instead of using
                        the 'style' keyword.
                        
                        +-------+----------------+
                        | Code  | Markers        |
                        +=======+================+
                        | .     | point          |
                        +-------+----------------+
                        | o     | circle         |
                        +-------+----------------+
                        | v     | triangle down  |
                        +-------+----------------+
                        | ^     | triangle up    |
                        +-------+----------------+
                        | <     | triangle left  |
                        +-------+----------------+
                        | >     | triangle right |
                        +-------+----------------+
                        | 1     | tri_down       |
                        +-------+----------------+
                        | 2     | tri_up         |
                        +-------+----------------+
                        | 3     | tri_left       |
                        +-------+----------------+
                        | 4     | tri_right      |
                        +-------+----------------+
                        | 8     | octagon        |
                        +-------+----------------+
                        | s     | square         |
                        +-------+----------------+
                        | p     | pentagon       |
                        +-------+----------------+
                        | ``*`` | star           |
                        +-------+----------------+
                        | h     | hexagon1       |
                        +-------+----------------+
                        | H     | hexagon2       |
                        +-------+----------------+
                        | ``+`` | plus           |
                        +-------+----------------+
                        | x     | x              |
                        +-------+----------------+
                        | D     | diamond        |
                        +-------+----------------+
                        | d     | thin diamond   |
                        +-------+----------------+
                        | _     | hline          |
                        +-------+----------------+
                        | None  | nothing        |
                        +-------+----------------+
                        | ' '   | nothing        |
                        +-------+----------------+
                        | ''    | nothing        |
                        +-------+----------------+
                        
                        Marker reference:
                        http://matplotlib.org/api/markers_api.html
  --style STYLE         [optional, default is None]
                        
                        Still available, but if None is replaced by 'colors', 'linestyles', and
                        'markerstyles' options.  Currently the 'style' option will override the
                        others.
                        
                        Comma separated matplotlib style strings per time-series.  Just
                        combine codes in 'ColorMarkerLine' order, for example 'r*--' is
                        a red dashed line with star marker.
  --xaxis XAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the xaxis.  One of 'arithmetic', 'log'.
  --yaxis YAXIS         [optional, default is 'arithmetic']
                        
                        Defines the type of the yaxis.  One of 'arithmetic', 'log'.
  --xlim XLIM           [optional, default is based on range of x values]
                        
                        Comma separated lower and upper limits for the x-axis of the
                        plot.  For example, '--xlim 1,1000' would limit the plot from
                        1 to 1000, where '--xlim ,1000' would base the lower limit on
                        the data and set the upper limit to 1000.
  --ylim YLIM           [optional, default is based on range of y values]
                        
                        Comma separated lower and upper limits for the y-axis of the
                        plot.  See `xlim` for examples.
  --xy_match_line XY_MATCH_LINE
                        [optional, defaults to ""]
                        
                        The style string to use to plot the xy match line.
  --grid                [optional, default is False]
                        
                        Whether to plot grid lines on the major ticks.
  --drawstyle DRAWSTYLE
                        [optional, default is 'default']
                        
                        'default' connects the points with lines. The
                        steps variants produce step-plots. 'steps' is equivalent to 'steps-pre'
                        and is maintained for backward-compatibility.
                        
                        ACCEPTS::
                        
                         ['default' | 'steps' | 'steps-pre' | 'steps-mid' | 'steps-post']
  --por                 [optional]
                        
                        Plot from first good value to last good value.  Strips NANs
                        from beginning and end.
  --invert_xaxis        [optional, default is False]
                        
                        Invert the x-axis.
  --invert_yaxis        [optional, default is False]
                        
                        Invert the y-axis.
  --round_index ROUND_INDEX
                        [optional, default is None which will do nothing to the index,
                        output format]
                        
                        Round the index to the nearest time point.  Can significantly
                        improve the performance since can cut down on memory and processing
                        requirements, however be cautious about rounding to a very course
                        interval from a small one.  This could lead to duplicate values in
                        the index.
  --dropna DROPNA       [optional, defauls it 'no', input filter]
                        
                        Set `dropna` to 'any' to have records dropped that have NA value in
                        any column, or 'all' to have records dropped that have NA in all
                        columns. Set to 'no' to not drop any records.  The default is 'no'.
  --source_units SOURCE_UNITS
                        [optional, default is None, transformation]
                        
                        If unit is specified for the column as the second field of a ':'
                        delimited column name, then the specified units and the
                        'source_units' must match exactly.
                        
                        Any unit string compatible with the 'pint' library can be used.
  --target_units TARGET_UNITS
                        [optional, default is None, transformation]
                        
                        The purpose of this option is to specify target units for unit
                        conversion.  The source units are specified in the header line of
                        the input or using the 'source_units' keyword.
                        
                        The units of the input time-series or values are specified as the
                        second field of a ':' delimited name in the header line of the
                        input or in the 'source_units' keyword.
                        
                        Any unit string compatible with the 'pint' library can be used.
                        
                        This option will also add the 'target_units' string to the
                        column names.
  --plot_styles PLOT_STYLES
                        [optional, default is "default"]
                        
                        Set the style of the plot.  One or more of Matplotlib styles "classic",
                        "Solarize_Light2", "bmh", "dark_background", "fast", "fivethirtyeight",
                        "ggplot", "grayscale", "seaborn", "seaborn-bright",
                        "seaborn-colorblind", "seaborn-dark", "seaborn-dark-palette",
                        "seaborn-darkgrid", "seaborn-deep", "seaborn-muted",
                        "seaborn-notebook", "seaborn-paper", "seaborn-pastel",
                        "seaborn-poster", "seaborn-talk", "seaborn-ticks", "seaborn-white",
                        "seaborn-whitegrid", "tableau-colorblind10", and
                        
                        The main SciencePlots styles are "science", "grid", "ieee", "scatter",
                        "notebook", "high-vis", "bright", "vibrant", "muted", and "retro".
                        
                        Other SciencPlots styles that are less common or intended to modify
                        other styles are, "cjk-jp-font.mplstyle", "cjk-kr-font.mplstyle",
                        "cjk-sc-font.mplstyle", "cjk-tc-font.mplstyle",
                        "high-contrast.mplstyle", "latex-sans.mplstyle", "light.mplstyle",
                        "nature.mplstyle", "no-latex.mplstyle", "pgf.mplstyle",
                        "russian-font.mplstyle", and "std-colors.mplstyle".
                        
                        If multiple styles then each over rides some or all of the
                        characteristics of the previous.
                        
                        Color Blind Appropriate Styles
                        
                        The styles "seaborn-colorblind", "tableau-colorblind10", "bright",
                        "vibrant", and "muted" are all styles that are setup to be able to be
                        distinguished by someone with color blindness.
                        
                        Black, White, and Gray Styles
                        
                        The "ieee" style is appropriate for black, white, and gray, however the
                        "ieee" also will change the chart size to fit in a column of the "IEEE"
                        journal.
                        
                        The "grayscale" is another style useful for photo-copyable black,
                        white, nd gray.
                        
                        Matplotlib styles:
                        https://matplotlib.org/3.3.1/gallery/style_sheets/style_sheets_reference.html
                        
                        SciencePlots styles:
                        https://github.com/garrettj403/SciencePlots
  --hlines_y HLINES_Y   [optional, defaults to None]
                        
                        Number or list of y values where to place a horizontal line.
  --hlines_xmin HLINES_XMIN
                        [optional, defaults to None]
                        
                        List of minimum x values to start the horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be used as the
                        minimum x values for all horizontal lines.  A missing value or None
                        will start at the minimum x value for the entire plot.
  --hlines_xmax HLINES_XMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each horizontal line.  If a list must
                        be same length as `hlines_y`.  If a single number will be the maximum
                        x value for all horizontal lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --hlines_colors HLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the horizontal lines.  If a single color then will
                        be used as the color for all horizontal lines.  If a list must be same
                        length as `hlines_y`.  If None will take from the color pallette in the
                        current plot style.
  --hlines_linestyles HLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the horizontal lines.  If a single linestyle
                        then will be used as the linestyle for all horizontal lines.  If a list
                        must be same length as `hlines_y`.  If None will take for the standard
                        linestyles list.
  --vlines_x VLINES_X   [optional, defaults to None]
                        
                        List of x values where to place a vertical line.
  --vlines_ymin VLINES_YMIN
                        [optional, defaults to None]
                        
                        List of minimum y values to start the vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be used as the
                        minimum x values for all vertical lines.  A missing value or None will
                        start at the minimum x value for the entire plot.
  --vlines_ymax VLINES_YMAX
                        [optional, defaults to None]
                        
                        List of maximum x values to end each vertical line.  If a list must be
                        same length as `vlines_x`.  If a single number will be the maximum
                        x value for all vertical lines.  A missing value or None will end at
                        the maximum x value for the entire plot.
  --vlines_colors VLINES_COLORS
                        [optional, defaults to None]
                        
                        List of colors for the vertical lines.  If a single color then will be
                        used as the color for all vertical lines.  If a list must be same
                        length as `vlines_x`.  If None will take from the color pallette in the
                        current plot style.
  --vlines_linestyles VLINES_LINESTYLES
                        [optional, defaults to None]
                        
                        List of linestyles for the vertical lines.  If a single linestyle then
                        will be used as the linestyle for all vertical lines.  If a list must
                        be same length as `vlines_x`.  If None will take for the standard
                        linestyles list.