class_docstr: The plotting method: `df.hvplot(...)` creates a plot similarly to the familiar Pandas
  `df.plot` method.
  
  For more detailed options use a specific plotting method, e.g. `df.hvplot.line`.
  
  Reference: https://hvplot.holoviz.org/reference/index.html
  
  Parameters
  ----------
  x : string, optional
      Field name(s) to draw x-positions from. If not specified, the index is
      used.
  y : string or list, optional
      Field name(s) to draw y-positions from. If not specified, all numerical
      fields are used.
  kind : string, optional
      The kind of plot to generate, e.g. 'area', 'bar', 'line', 'scatter' etc. To see the
      available plots run `print(df.hvplot.__all__)`.
  **kwds : optional
      Additional keywords arguments are documented in `hvplot.help('scatter')` or similar
      depending on the kind of plot.
  
  Returns
  -------
  A Holoviews object. You can `print` the object to study its composition and run
  
  .. code-block::
  
      import holoviews as hv
      hv.help(the_holoviews_object)
  
  to learn more about its parameters and options.
  
  Examples
  --------
  
  .. code-block::
  
      import pandas as pd
      import hvplot.pandas
  
      df = pd.DataFrame(
          {
              "actual": [100, 150, 125, 140, 145, 135, 123],
              "forecast": [90, 160, 125, 150, 141, 141, 120],
              "numerical": [1.1, 1.9, 3.2, 3.8, 4.3, 5.0, 5.5],
              "date": pd.date_range("2022-01-03", "2022-01-09"),
              "string": ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
          },
      )
      line = df.hvplot.line(
          x="numerical",
          y=["actual", "forecast"],
          ylabel="value",
          legend="bottom",
          height=500,
          color=["steelblue", "teal"],
          alpha=0.7,
          line_width=5,
      )
      line
  
  You can can add *markers* to a `line` plot by overlaying with a `scatter` plot.
  
  .. code-block::
  
      markers = df.hvplot.scatter(
          x="numerical", y=["actual", "forecast"], color=["#f16a6f", "#1e85f7"], size=50
      )
      line * markers
  
  Please note that you can pass widgets or reactive functions as arguments instead of
  literal values, c.f. https://hvplot.holoviz.org/user_guide/Widgets.html.
class_docstr_tok: ["The","plotting","method",":","`","df.hvplot","(","...",")","`","creates","a","plot","similarly","to","the","familiar","Pandas","`","df.plot","`","method",".","For","more","detailed","options","use","a","specific","plotting","method",",","e.g",".","`","df.hvplot.line","`",".","Reference",":","https",":","\/\/hvplot.holoviz.org\/reference\/index.html","Parameters","--","--","--","--","--","x",":","string",",","optional","Field","name","(","s",")","to","draw","x-positions","from",".","If","not","specified",",","the","index","is","used",".","y",":","string","or","list",",","optional","Field","name","(","s",")","to","draw","y-positions","from",".","If","not","specified",",","all","numerical","fields","are","used",".","kind",":","string",",","optional","The","kind","of","plot","to","generate",",","e.g",".","'area","'",",","'bar","'",",","'line","'",",","'scatter","'","etc",".","To","see","the","available","plots","run","`","print","(","df.hvplot.__all__",")","`",".","*","*","kwds",":","optional","Additional","keywords","arguments","are","documented","in","`","hvplot.help","(","'scatter","'",")","`","or","similar","depending","on","the","kind","of","plot",".","Returns","--","--","--","-","A","Holoviews","object",".","You","can","`","print","`","the","object","to","study","its","composition","and","run","..","code-block",":",":","import","holoviews","as","hv","hv.help","(","the_holoviews_object",")","to","learn","more","about","its","parameters","and","options",".","Examples","--","--","--","--","..","code-block",":",":","import","pandas","as","pd","import","hvplot.pandas","df","=","pd.DataFrame","(","{","``","actual","''",":","[","100",",","150",",","125",",","140",",","145",",","135",",","123","]",",","``","forecast","''",":","[","90",",","160",",","125",",","150",",","141",",","141",",","120","]",",","``","numerical","''",":","[","1.1",",","1.9",",","3.2",",","3.8",",","4.3",",","5.0",",","5.5","]",",","``","date","''",":","pd.date_range","(","``","2022-01-03","''",",","``","2022-01-09","''",")",",","``","string","''",":","[","``","Mon","''",",","``","Tue","''",",","``","Wed","''",",","``","Thu","''",",","``","Fri","''",",","``","Sat","''",",","``","Sun","''","]",",","}",",",")","line","=","df.hvplot.line","(","x=","''","numerical","''",",","y=","[","``","actual","''",",","``","forecast","''","]",",","ylabel=","''","value","''",",","legend=","''","bottom","''",",","height=500",",","color=","[","``","steelblue","''",",","``","teal","''","]",",","alpha=0.7",",","line_width=5",",",")","line","You","can","can","add","*","markers","*","to","a","`","line","`","plot","by","overlaying","with","a","`","scatter","`","plot",".","..","code-block",":",":","markers","=","df.hvplot.scatter","(","x=","''","numerical","''",",","y=","[","``","actual","''",",","``","forecast","''","]",",","color=","[","``","#","f16a6f","''",",","``","#","1e85f7","''","]",",","size=50",")","line","*","markers","Please","note","that","you","can","pass","widgets","or","reactive","functions","as","arguments","instead","of","literal","values",",","c.f",".","https",":","\/\/hvplot.holoviz.org\/user_guide\/Widgets.html","."]
docstr: The `step` plot connects the points with piece-wise constant curves.
  
  The `step` plot can be used pretty much anytime the `line` plot might be used, and has many
  of the same options available.
  
  Reference: https://hvplot.holoviz.org/reference/pandas/step.html
  
  Parameters
  ----------
  x : string, optional
      Field name(s) to draw x-positions from. If not specified, the index is
      used. Must refer to continuous data. Not categorical data.
  y : string or list, optional
      Field name(s) to draw y-positions from. If not specified, all numerical
      fields are used.
  by : string, optional
      A single field or list of fields to group by. All the subgroups are visualized.
  groupby: string, list, optional
      A single field or list of fields to group and filter by. Adds one or more widgets to
      select the subgroup(s) to visualize.
  where: string, optional
      The interpolation method. One of 'mid', 'pre', 'post'. Default is 'mid'.
  color : str or array-like, optional.
      The color for each of the series. Possible values are:
  
      A single color string referred to by name, RGB or RGBA code, for instance 'red' or
      '#a98d19.
  
      A sequence of color strings referred to by name, RGB or RGBA code, which will be used
      for each series recursively. For instance ['green','yellow'] each field’s line will be
      filled in green or yellow, alternatively. If there is only a single series to be
      plotted, then only the first color from the color list will be used.
  **kwds : optional
      Additional keywords arguments are documented in `hvplot.help('step')`.
  
  Returns
  -------
  A Holoviews object. You can `print` the object to study its composition and run
  
  .. code-block::
  
      import holoviews as hv
      hv.help(the_holoviews_object)
  
  to learn more about its parameters and options.
  
  Examples
  --------
  
  .. code-block::
  
      import hvplot.pandas
      import pandas as pd
  
      df = pd.DataFrame(
          {
              "actual": [100, 150, 125, 140, 145, 135, 123],
              "forecast": [90, 160, 125, 150, 141, 141, 120],
              "numerical": [1.1, 1.9, 3.2, 3.8, 4.3, 5.0, 5.5],
              "date": pd.date_range("2022-01-03", "2022-01-09"),
              "string": ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
          },
      )
      step = df.hvplot.step(
          x="numerical",
          y=["actual", "forecast"],
          ylabel="value",
          legend="bottom",
          height=500,
          color=["#f16a6f", "#1e85f7"],
          line_width=5,
      )
      step
  
  You can can add *markers* to a `step` plot by overlaying with a `scatter` plot.
  
  .. code-block::
  
      markers = df.hvplot.scatter(
          x="numerical", y=["actual", "forecast"], color=["#f16a6f", "#1e85f7"], size=100
      )
      step * markers
  
  Please note that you can pass widgets or reactive functions as arguments instead of
  literal values, c.f. https://hvplot.holoviz.org/user_guide/Widgets.html.
  
  References
  ----------
  
  - Bokeh: https://docs.bokeh.org/en/latest/docs/reference/models/glyphs/step.html
  - HoloViews: https://holoviews.org/gallery/demos/bokeh/step_chart.html
  - Pandas: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.line.html (use `draw_style='step')
  - Plotly: https://plotly.com/python/line-charts/ (See the Interpolation Section)
  - Matplotlib: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.step.html
docstr_tok: ["The","`","step","`","plot","connects","the","points","with","piece-wise","constant","curves",".","The","`","step","`","plot","can","be","used","pretty","much","anytime","the","`","line","`","plot","might","be","used",",","and","has","many","of","the","same","options","available",".","Reference",":","https",":","\/\/hvplot.holoviz.org\/reference\/pandas\/step.html","Parameters","--","--","--","--","--","x",":","string",",","optional","Field","name","(","s",")","to","draw","x-positions","from",".","If","not","specified",",","the","index","is","used",".","Must","refer","to","continuous","data",".","Not","categorical","data",".","y",":","string","or","list",",","optional","Field","name","(","s",")","to","draw","y-positions","from",".","If","not","specified",",","all","numerical","fields","are","used",".","by",":","string",",","optional","A","single","field","or","list","of","fields","to","group","by",".","All","the","subgroups","are","visualized",".","groupby",":","string",",","list",",","optional","A","single","field","or","list","of","fields","to","group","and","filter","by",".","Adds","one","or","more","widgets","to","select","the","subgroup","(","s",")","to","visualize",".","where",":","string",",","optional","The","interpolation","method",".","One","of","'mid","'",",","'pre","'",",","'post","'",".","Default","is","'mid","'",".","color",":","str","or","array-like",",","optional",".","The","color","for","each","of","the","series",".","Possible","values","are",":","A","single","color","string","referred","to","by","name",",","RGB","or","RGBA","code",",","for","instance","'red","'","or","'","#","a98d19",".","A","sequence","of","color","strings","referred","to","by","name",",","RGB","or","RGBA","code",",","which","will","be","used","for","each","series","recursively",".","For","instance","[","'green","'",",","'yellow","'","]","each","field","\u2019","s","line","will","be","filled","in","green","or","yellow",",","alternatively",".","If","there","is","only","a","single","series","to","be","plotted",",","then","only","the","first","color","from","the","color","list","will","be","used",".","*","*","kwds",":","optional","Additional","keywords","arguments","are","documented","in","`","hvplot.help","(","'step","'",")","`",".","Returns","--","--","--","-","A","Holoviews","object",".","You","can","`","print","`","the","object","to","study","its","composition","and","run","..","code-block",":",":","import","holoviews","as","hv","hv.help","(","the_holoviews_object",")","to","learn","more","about","its","parameters","and","options",".","Examples","--","--","--","--","..","code-block",":",":","import","hvplot.pandas","import","pandas","as","pd","df","=","pd.DataFrame","(","{","``","actual","''",":","[","100",",","150",",","125",",","140",",","145",",","135",",","123","]",",","``","forecast","''",":","[","90",",","160",",","125",",","150",",","141",",","141",",","120","]",",","``","numerical","''",":","[","1.1",",","1.9",",","3.2",",","3.8",",","4.3",",","5.0",",","5.5","]",",","``","date","''",":","pd.date_range","(","``","2022-01-03","''",",","``","2022-01-09","''",")",",","``","string","''",":","[","``","Mon","''",",","``","Tue","''",",","``","Wed","''",",","``","Thu","''",",","``","Fri","''",",","``","Sat","''",",","``","Sun","''","]",",","}",",",")","step","=","df.hvplot.step","(","x=","''","numerical","''",",","y=","[","``","actual","''",",","``","forecast","''","]",",","ylabel=","''","value","''",",","legend=","''","bottom","''",",","height=500",",","color=","[","``","#","f16a6f","''",",","``","#","1e85f7","''","]",",","line_width=5",",",")","step","You","can","can","add","*","markers","*","to","a","`","step","`","plot","by","overlaying","with","a","`","scatter","`","plot",".","..","code-block",":",":","markers","=","df.hvplot.scatter","(","x=","''","numerical","''",",","y=","[","``","actual","''",",","``","forecast","''","]",",","color=","[","``","#","f16a6f","''",",","``","#","1e85f7","''","]",",","size=100",")","step","*","markers","Please","note","that","you","can","pass","widgets","or","reactive","functions","as","arguments","instead","of","literal","values",",","c.f",".","https",":","\/\/hvplot.holoviz.org\/user_guide\/Widgets.html",".","References","--","--","--","--","--","-","Bokeh",":","https",":","\/\/docs.bokeh.org\/en\/latest\/docs\/reference\/models\/glyphs\/step.html","-","HoloViews",":","https",":","\/\/holoviews.org\/gallery\/demos\/bokeh\/step_chart.html","-","Pandas",":","https",":","\/\/pandas.pydata.org\/docs\/reference\/api\/pandas.DataFrame.plot.line.html","(","use","`","draw_style='step","'",")","-","Plotly",":","https",":","\/\/plotly.com\/python\/line-charts\/","(","See","the","Interpolation","Section",")","-","Matplotlib",":","https",":","\/\/matplotlib.org\/stable\/api\/_as_gen\/matplotlib.pyplot.step.html"]
code: def step(self, x=None, y=None, where="mid", **kwds):
      """
      The `step` plot connects the points with piece-wise constant curves.
  
      The `step` plot can be used pretty much anytime the `line` plot might be used, and has many
      of the same options available.
  
      Reference: https://hvplot.holoviz.org/reference/pandas/step.html
  
      Parameters
      ----------
      x : string, optional
          Field name(s) to draw x-positions from. If not specified, the index is
          used. Must refer to continuous data. Not categorical data.
      y : string or list, optional
          Field name(s) to draw y-positions from. If not specified, all numerical
          fields are used.
      by : string, optional
          A single field or list of fields to group by. All the subgroups are visualized.
      groupby: string, list, optional
          A single field or list of fields to group and filter by. Adds one or more widgets to
          select the subgroup(s) to visualize.
      where: string, optional
          The interpolation method. One of 'mid', 'pre', 'post'. Default is 'mid'.
      color : str or array-like, optional.
          The color for each of the series. Possible values are:
  
          A single color string referred to by name, RGB or RGBA code, for instance 'red' or
          '#a98d19.
  
          A sequence of color strings referred to by name, RGB or RGBA code, which will be used
          for each series recursively. For instance ['green','yellow'] each field’s line will be
          filled in green or yellow, alternatively. If there is only a single series to be
          plotted, then only the first color from the color list will be used.
      **kwds : optional
          Additional keywords arguments are documented in `hvplot.help('step')`.
  
      Returns
      -------
      A Holoviews object. You can `print` the object to study its composition and run
  
      .. code-block::
  
          import holoviews as hv
          hv.help(the_holoviews_object)
  
      to learn more about its parameters and options.
  
      Examples
      --------
  
      .. code-block::
  
          import hvplot.pandas
          import pandas as pd
  
          df = pd.DataFrame(
              {
                  "actual": [100, 150, 125, 140, 145, 135, 123],
                  "forecast": [90, 160, 125, 150, 141, 141, 120],
                  "numerical": [1.1, 1.9, 3.2, 3.8, 4.3, 5.0, 5.5],
                  "date": pd.date_range("2022-01-03", "2022-01-09"),
                  "string": ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
              },
          )
          step = df.hvplot.step(
              x="numerical",
              y=["actual", "forecast"],
              ylabel="value",
              legend="bottom",
              height=500,
              color=["#f16a6f", "#1e85f7"],
              line_width=5,
          )
          step
  
      You can can add *markers* to a `step` plot by overlaying with a `scatter` plot.
  
      .. code-block::
  
          markers = df.hvplot.scatter(
              x="numerical", y=["actual", "forecast"], color=["#f16a6f", "#1e85f7"], size=100
          )
          step * markers
  
      Please note that you can pass widgets or reactive functions as arguments instead of
      literal values, c.f. https://hvplot.holoviz.org/user_guide/Widgets.html.
  
      References
      ----------
  
      - Bokeh: https://docs.bokeh.org/en/latest/docs/reference/models/glyphs/step.html
      - HoloViews: https://holoviews.org/gallery/demos/bokeh/step_chart.html
      - Pandas: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.line.html (use `draw_style='step')
      - Plotly: https://plotly.com/python/line-charts/ (See the Interpolation Section)
      - Matplotlib: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.step.html
      """
      return self(x, y, kind="step", where=where, **kwds)
  
imports: import itertools
  from collections import defaultdict
  import param
  from ..converter import HoloViewsConverter
  from ..util import is_list_like, process_dynamic_args
label_desc: Use image node_id 2 for calling the hvPlotTabular obj's underlying member method code with example usage: obj.step(x, y, where) and returns: self