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: `violin`  plots are similar to `box` plots, but they provide a better sense of the
  distribution of data.
  
  Note that `violin` plots depend on the `scipy` library.
  
  Reference: https://hvplot.holoviz.org/reference/pandas/violin.html
  
  Parameters
  ----------
  y : string or sequence
      Field(s) in the *wide* data to compute distribution from. If none is provided all
      numerical fields will be used.
  by : string or sequence
      Field in the *long* data to group by.
  kwds : optional
      Additional keywords arguments are documented in `hvplot.help('violin')`.
  
  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
  --------
  
  Here is an example using *wide* data.
  
  .. code-block::
  
      import hvplot.pandas
      import numpy as np
      import pandas as pd
  
      data = np.random.randn(25, 4)
      df = pd.DataFrame(data, columns=list('ABCD'))
      df.hvplot.violin(ylim=(-5, 5))
  
  Here is an example using *long* data and the `by` argument.
  
  .. code-block::
  
      import hvplot.pandas  # noqa
      import pandas as pd
      age_list = [8, 10, 12, 14, 72, 74, 76, 78, 20, 25, 30, 35, 60, 85]
      df = pd.DataFrame({"gender": list("MMMMMMMMFFFFFF"), "age": age_list})
      df.hvplot.violin(y='age', by='gender', height=400, width=400, legend=False, ylim=(-100, 200))
  
  References
  ----------
  
  - Seaborn: https://seaborn.pydata.org/generated/seaborn.violinplot.html
  - HoloViews: https://holoviews.org/reference/elements/bokeh/Violin.html
  - Matplotlib: https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.violinplot.html
  - Plotly: https://plotly.com/python/violin/
  - Wiki: https://en.wikipedia.org/wiki/Violin_plot
docstr_tok: ["`","violin","`","plots","are","similar","to","`","box","`","plots",",","but","they","provide","a","better","sense","of","the","distribution","of","data",".","Note","that","`","violin","`","plots","depend","on","the","`","scipy","`","library",".","Reference",":","https",":","\/\/hvplot.holoviz.org\/reference\/pandas\/violin.html","Parameters","--","--","--","--","--","y",":","string","or","sequence","Field","(","s",")","in","the","*","wide","*","data","to","compute","distribution","from",".","If","none","is","provided","all","numerical","fields","will","be","used",".","by",":","string","or","sequence","Field","in","the","*","long","*","data","to","group","by",".","kwds",":","optional","Additional","keywords","arguments","are","documented","in","`","hvplot.help","(","'violin","'",")","`",".","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","--","--","--","--","Here","is","an","example","using","*","wide","*","data",".","..","code-block",":",":","import","hvplot.pandas","import","numpy","as","np","import","pandas","as","pd","data","=","np.random.randn","(","25",",","4",")","df","=","pd.DataFrame","(","data",",","columns=list","(","'ABCD","'",")",")","df.hvplot.violin","(","ylim=","(","-5",",","5",")",")","Here","is","an","example","using","*","long","*","data","and","the","`","by","`","argument",".","..","code-block",":",":","import","hvplot.pandas","#","noqa","import","pandas","as","pd","age_list","=","[","8",",","10",",","12",",","14",",","72",",","74",",","76",",","78",",","20",",","25",",","30",",","35",",","60",",","85","]","df","=","pd.DataFrame","(","{","``","gender","''",":","list","(","``","MMMMMMMMFFFFFF","''",")",",","``","age","''",":","age_list","}",")","df.hvplot.violin","(","y='age","'",",","by='gender","'",",","height=400",",","width=400",",","legend=False",",","ylim=","(","-100",",","200",")",")","References","--","--","--","--","--","-","Seaborn",":","https",":","\/\/seaborn.pydata.org\/generated\/seaborn.violinplot.html","-","HoloViews",":","https",":","\/\/holoviews.org\/reference\/elements\/bokeh\/Violin.html","-","Matplotlib",":","https",":","\/\/matplotlib.org\/stable\/api\/_as_gen\/matplotlib.axes.Axes.violinplot.html","-","Plotly",":","https",":","\/\/plotly.com\/python\/violin\/","-","Wiki",":","https",":","\/\/en.wikipedia.org\/wiki\/Violin_plot"]
code: def violin(self, y=None, by=None, **kwds):
      """
      `violin`  plots are similar to `box` plots, but they provide a better sense of the
      distribution of data.
  
      Note that `violin` plots depend on the `scipy` library.
  
      Reference: https://hvplot.holoviz.org/reference/pandas/violin.html
  
      Parameters
      ----------
      y : string or sequence
          Field(s) in the *wide* data to compute distribution from. If none is provided all
          numerical fields will be used.
      by : string or sequence
          Field in the *long* data to group by.
      kwds : optional
          Additional keywords arguments are documented in `hvplot.help('violin')`.
  
      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
      --------
  
      Here is an example using *wide* data.
  
      .. code-block::
  
          import hvplot.pandas
          import numpy as np
          import pandas as pd
  
          data = np.random.randn(25, 4)
          df = pd.DataFrame(data, columns=list('ABCD'))
          df.hvplot.violin(ylim=(-5, 5))
  
      Here is an example using *long* data and the `by` argument.
  
      .. code-block::
  
          import hvplot.pandas  # noqa
          import pandas as pd
          age_list = [8, 10, 12, 14, 72, 74, 76, 78, 20, 25, 30, 35, 60, 85]
          df = pd.DataFrame({"gender": list("MMMMMMMMFFFFFF"), "age": age_list})
          df.hvplot.violin(y='age', by='gender', height=400, width=400, legend=False, ylim=(-100, 200))
  
      References
      ----------
  
      - Seaborn: https://seaborn.pydata.org/generated/seaborn.violinplot.html
      - HoloViews: https://holoviews.org/reference/elements/bokeh/Violin.html
      - Matplotlib: https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.violinplot.html
      - Plotly: https://plotly.com/python/violin/
      - Wiki: https://en.wikipedia.org/wiki/Violin_plot
      """
      return self(
          kind="violin", x=None, y=y, by=by, **dict(kwds, hover=False)
      )
  
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 13 for calling the hvPlotTabular obj's underlying member method code with example usage: obj.violin(y, by) and returns: self