docstr: Construct a new Parcats object
  
  Parallel categories diagram for multidimensional categorical
  data.
  
  Parameters
  ----------
  arg
      dict of properties compatible with this constructor or
      an instance of :class:`plotly.graph_objs.Parcats`
  arrangement
      Sets the drag interaction mode for categories and
      dimensions. If `perpendicular`, the categories can only
      move along a line perpendicular to the paths. If
      `freeform`, the categories can freely move on the
      plane. If `fixed`, the categories and dimensions are
      stationary.
  bundlecolors
      Sort paths so that like colors are bundled together
      within each category.
  counts
      The number of observations represented by each state.
      Defaults to 1 so that each state represents one
      observation
  countssrc
      Sets the source reference on Chart Studio Cloud for
      `counts`.
  dimensions
      The dimensions (variables) of the parallel categories
      diagram.
  dimensiondefaults
      When used in a template (as
      layout.template.data.parcats.dimensiondefaults), sets
      the default property values to use for elements of
      parcats.dimensions
  domain
      :class:`plotly.graph_objects.parcats.Domain` instance
      or dict with compatible properties
  hoverinfo
      Determines which trace information appear on hover. If
      `none` or `skip` are set, no information is displayed
      upon hovering. But, if `none` is set, click and hover
      events are still fired.
  hoveron
      Sets the hover interaction mode for the parcats
      diagram. If `category`, hover interaction take place
      per category. If `color`, hover interactions take place
      per color per category. If `dimension`, hover
      interactions take place across all categories per
      dimension.
  hovertemplate
      Template string used for rendering the information that
      appear on hover box. Note that this will override
      `hoverinfo`. Variables are inserted using %{variable},
      for example "y: %{y}" as well as %{xother}, {%_xother},
      {%_xother_}, {%xother_}. When showing info for several
      points, "xother" will be added to those with different
      x positions from the first point. An underscore before
      or after "(x|y)other" will add a space on that side,
      only when this field is shown. Numbers are formatted
      using d3-format's syntax %{variable:d3-format}, for
      example "Price: %{y:$.2f}".
      https://github.com/d3/d3-format/tree/v1.4.5#d3-format
      for details on the formatting syntax. Dates are
      formatted using d3-time-format's syntax
      %{variable|d3-time-format}, for example "Day:
      %{2019-01-01|%A}". https://github.com/d3/d3-time-
      format/tree/v2.2.3#locale_format for details on the
      date formatting syntax. The variables available in
      `hovertemplate` are the ones emitted as event data
      described at this link
      https://plotly.com/javascript/plotlyjs-events/#event-
      data. Additionally, every attributes that can be
      specified per-point (the ones that are `arrayOk: true`)
      are available.  This value here applies when hovering
      over dimensions. Note that `*categorycount`,
      "colorcount" and "bandcolorcount" are only available
      when `hoveron` contains the "color" flagFinally, the
      template string has access to variables `count`,
      `probability`, `category`, `categorycount`,
      `colorcount` and `bandcolorcount`. Anything contained
      in tag `<extra>` is displayed in the secondary box, for
      example "<extra>{fullData.name}</extra>". To hide the
      secondary box completely, use an empty tag
      `<extra></extra>`.
  labelfont
      Sets the font for the `dimension` labels.
  legendgrouptitle
      :class:`plotly.graph_objects.parcats.Legendgrouptitle`
      instance or dict with compatible properties
  legendwidth
      Sets the width (in px or fraction) of the legend for
      this trace.
  line
      :class:`plotly.graph_objects.parcats.Line` instance or
      dict with compatible properties
  meta
      Assigns extra meta information associated with this
      trace that can be used in various text attributes.
      Attributes such as trace `name`, graph, axis and
      colorbar `title.text`, annotation `text`
      `rangeselector`, `updatemenues` and `sliders` `label`
      text all support `meta`. To access the trace `meta`
      values in an attribute in the same trace, simply use
      `%{meta[i]}` where `i` is the index or key of the
      `meta` item in question. To access trace `meta` in
      layout attributes, use `%{data[n[.meta[i]}` where `i`
      is the index or key of the `meta` and `n` is the trace
      index.
  metasrc
      Sets the source reference on Chart Studio Cloud for
      `meta`.
  name
      Sets the trace name. The trace name appears as the
      legend item and on hover.
  sortpaths
      Sets the path sorting algorithm. If `forward`, sort
      paths based on dimension categories from left to right.
      If `backward`, sort paths based on dimensions
      categories from right to left.
  stream
      :class:`plotly.graph_objects.parcats.Stream` instance
      or dict with compatible properties
  tickfont
      Sets the font for the `category` labels.
  uid
      Assign an id to this trace, Use this to provide object
      constancy between traces during animations and
      transitions.
  uirevision
      Controls persistence of some user-driven changes to the
      trace: `constraintrange` in `parcoords` traces, as well
      as some `editable: true` modifications such as `name`
      and `colorbar.title`. Defaults to `layout.uirevision`.
      Note that other user-driven trace attribute changes are
      controlled by `layout` attributes: `trace.visible` is
      controlled by `layout.legend.uirevision`,
      `selectedpoints` is controlled by
      `layout.selectionrevision`, and `colorbar.(x|y)`
      (accessible with `config: {editable: true}`) is
      controlled by `layout.editrevision`. Trace changes are
      tracked by `uid`, which only falls back on trace index
      if no `uid` is provided. So if your app can add/remove
      traces before the end of the `data` array, such that
      the same trace has a different index, you can still
      preserve user-driven changes if you give each trace a
      `uid` that stays with it as it moves.
  visible
      Determines whether or not this trace is visible. If
      "legendonly", the trace is not drawn, but can appear as
      a legend item (provided that the legend itself is
      visible).
  
  Returns
  -------
  Parcats
docstr_tok: ["Construct","a","new","Parcats","object","Parallel","categories","diagram","for","multidimensional","categorical","data",".","Parameters","--","--","--","--","--","arg","dict","of","properties","compatible","with","this","constructor","or","an","instance","of",":","class",":","`","plotly.graph_objs.Parcats","`","arrangement","Sets","the","drag","interaction","mode","for","categories","and","dimensions",".","If","`","perpendicular","`",",","the","categories","can","only","move","along","a","line","perpendicular","to","the","paths",".","If","`","freeform","`",",","the","categories","can","freely","move","on","the","plane",".","If","`","fixed","`",",","the","categories","and","dimensions","are","stationary",".","bundlecolors","Sort","paths","so","that","like","colors","are","bundled","together","within","each","category",".","counts","The","number","of","observations","represented","by","each","state",".","Defaults","to","1","so","that","each","state","represents","one","observation","countssrc","Sets","the","source","reference","on","Chart","Studio","Cloud","for","`","counts","`",".","dimensions","The","dimensions","(","variables",")","of","the","parallel","categories","diagram",".","dimensiondefaults","When","used","in","a","template","(","as","layout.template.data.parcats.dimensiondefaults",")",",","sets","the","default","property","values","to","use","for","elements","of","parcats.dimensions","domain",":","class",":","`","plotly.graph_objects.parcats.Domain","`","instance","or","dict","with","compatible","properties","hoverinfo","Determines","which","trace","information","appear","on","hover",".","If","`","none","`","or","`","skip","`","are","set",",","no","information","is","displayed","upon","hovering",".","But",",","if","`","none","`","is","set",",","click","and","hover","events","are","still","fired",".","hoveron","Sets","the","hover","interaction","mode","for","the","parcats","diagram",".","If","`","category","`",",","hover","interaction","take","place","per","category",".","If","`","color","`",",","hover","interactions","take","place","per","color","per","category",".","If","`","dimension","`",",","hover","interactions","take","place","across","all","categories","per","dimension",".","hovertemplate","Template","string","used","for","rendering","the","information","that","appear","on","hover","box",".","Note","that","this","will","override","`","hoverinfo","`",".","Variables","are","inserted","using","%","{","variable","}",",","for","example","``","y",":","%","{","y","}","''","as","well","as","%","{","xother","}",",","{","%","_xother","}",",","{","%","_xother_","}",",","{","%","xother_","}",".","When","showing","info","for","several","points",",","``","xother","''","will","be","added","to","those","with","different","x","positions","from","the","first","point",".","An","underscore","before","or","after","``","(","x|y",")","other","''","will","add","a","space","on","that","side",",","only","when","this","field","is","shown",".","Numbers","are","formatted","using","d3-format","'s","syntax","%","{","variable",":","d3-format","}",",","for","example","``","Price",":","%","{","y",":","$",".2f","}","''",".","https",":","\/\/github.com\/d3\/d3-format\/tree\/v1.4.5","#","d3-format","for","details","on","the","formatting","syntax",".","Dates","are","formatted","using","d3-time-format","'s","syntax","%","{","variable|d3-time-format","}",",","for","example","``","Day",":","%","{","2019-01-01|","%","A","}","''",".","https",":","\/\/github.com\/d3\/d3-time-","format\/tree\/v2.2.3","#","locale_format","for","details","on","the","date","formatting","syntax",".","The","variables","available","in","`","hovertemplate","`","are","the","ones","emitted","as","event","data","described","at","this","link","https",":","\/\/plotly.com\/javascript\/plotlyjs-events\/","#","event-","data",".","Additionally",",","every","attributes","that","can","be","specified","per-point","(","the","ones","that","are","`","arrayOk",":","true","`",")","are","available",".","This","value","here","applies","when","hovering","over","dimensions",".","Note","that","`","*","categorycount","`",",","``","colorcount","''","and","``","bandcolorcount","''","are","only","available","when","`","hoveron","`","contains","the","``","color","''","flagFinally",",","the","template","string","has","access","to","variables","`","count","`",",","`","probability","`",",","`","category","`",",","`","categorycount","`",",","`","colorcount","`","and","`","bandcolorcount","`",".","Anything","contained","in","tag","`","<","extra",">","`","is","displayed","in","the","secondary","box",",","for","example","``","<","extra",">","{","fullData.name","}","<","\/extra",">","''",".","To","hide","the","secondary","box","completely",",","use","an","empty","tag","`","<","extra",">","<","\/extra",">","`",".","labelfont","Sets","the","font","for","the","`","dimension","`","labels",".","legendgrouptitle",":","class",":","`","plotly.graph_objects.parcats.Legendgrouptitle","`","instance","or","dict","with","compatible","properties","legendwidth","Sets","the","width","(","in","px","or","fraction",")","of","the","legend","for","this","trace",".","line",":","class",":","`","plotly.graph_objects.parcats.Line","`","instance","or","dict","with","compatible","properties","meta","Assigns","extra","meta","information","associated","with","this","trace","that","can","be","used","in","various","text","attributes",".","Attributes","such","as","trace","`","name","`",",","graph",",","axis","and","colorbar","`","title.text","`",",","annotation","`","text","`","`","rangeselector","`",",","`","updatemenues","`","and","`","sliders","`","`","label","`","text","all","support","`","meta","`",".","To","access","the","trace","`","meta","`","values","in","an","attribute","in","the","same","trace",",","simply","use","`","%","{","meta","[","i","]","}","`","where","`","i","`","is","the","index","or","key","of","the","`","meta","`","item","in","question",".","To","access","trace","`","meta","`","in","layout","attributes",",","use","`","%","{","data","[","n","[",".meta","[","i","]","}","`","where","`","i","`","is","the","index","or","key","of","the","`","meta","`","and","`","n","`","is","the","trace","index",".","metasrc","Sets","the","source","reference","on","Chart","Studio","Cloud","for","`","meta","`",".","name","Sets","the","trace","name",".","The","trace","name","appears","as","the","legend","item","and","on","hover",".","sortpaths","Sets","the","path","sorting","algorithm",".","If","`","forward","`",",","sort","paths","based","on","dimension","categories","from","left","to","right",".","If","`","backward","`",",","sort","paths","based","on","dimensions","categories","from","right","to","left",".","stream",":","class",":","`","plotly.graph_objects.parcats.Stream","`","instance","or","dict","with","compatible","properties","tickfont","Sets","the","font","for","the","`","category","`","labels",".","uid","Assign","an","id","to","this","trace",",","Use","this","to","provide","object","constancy","between","traces","during","animations","and","transitions",".","uirevision","Controls","persistence","of","some","user-driven","changes","to","the","trace",":","`","constraintrange","`","in","`","parcoords","`","traces",",","as","well","as","some","`","editable",":","true","`","modifications","such","as","`","name","`","and","`","colorbar.title","`",".","Defaults","to","`","layout.uirevision","`",".","Note","that","other","user-driven","trace","attribute","changes","are","controlled","by","`","layout","`","attributes",":","`","trace.visible","`","is","controlled","by","`","layout.legend.uirevision","`",",","`","selectedpoints","`","is","controlled","by","`","layout.selectionrevision","`",",","and","`","colorbar",".","(","x|y",")","`","(","accessible","with","`","config",":","{","editable",":","true","}","`",")","is","controlled","by","`","layout.editrevision","`",".","Trace","changes","are","tracked","by","`","uid","`",",","which","only","falls","back","on","trace","index","if","no","`","uid","`","is","provided",".","So","if","your","app","can","add\/remove","traces","before","the","end","of","the","`","data","`","array",",","such","that","the","same","trace","has","a","different","index",",","you","can","still","preserve","user-driven","changes","if","you","give","each","trace","a","`","uid","`","that","stays","with","it","as","it","moves",".","visible","Determines","whether","or","not","this","trace","is","visible",".","If","``","legendonly","''",",","the","trace","is","not","drawn",",","but","can","appear","as","a","legend","item","(","provided","that","the","legend","itself","is","visible",")",".","Returns","--","--","--","-","Parcats"]
code: def __init__(
      self,
      arg=None,
      arrangement=None,
      bundlecolors=None,
      counts=None,
      countssrc=None,
      dimensions=None,
      dimensiondefaults=None,
      domain=None,
      hoverinfo=None,
      hoveron=None,
      hovertemplate=None,
      labelfont=None,
      legendgrouptitle=None,
      legendwidth=None,
      line=None,
      meta=None,
      metasrc=None,
      name=None,
      sortpaths=None,
      stream=None,
      tickfont=None,
      uid=None,
      uirevision=None,
      visible=None,
      **kwargs,
  ):
      """
      Construct a new Parcats object
  
      Parallel categories diagram for multidimensional categorical
      data.
  
      Parameters
      ----------
      arg
          dict of properties compatible with this constructor or
          an instance of :class:`plotly.graph_objs.Parcats`
      arrangement
          Sets the drag interaction mode for categories and
          dimensions. If `perpendicular`, the categories can only
          move along a line perpendicular to the paths. If
          `freeform`, the categories can freely move on the
          plane. If `fixed`, the categories and dimensions are
          stationary.
      bundlecolors
          Sort paths so that like colors are bundled together
          within each category.
      counts
          The number of observations represented by each state.
          Defaults to 1 so that each state represents one
          observation
      countssrc
          Sets the source reference on Chart Studio Cloud for
          `counts`.
      dimensions
          The dimensions (variables) of the parallel categories
          diagram.
      dimensiondefaults
          When used in a template (as
          layout.template.data.parcats.dimensiondefaults), sets
          the default property values to use for elements of
          parcats.dimensions
      domain
          :class:`plotly.graph_objects.parcats.Domain` instance
          or dict with compatible properties
      hoverinfo
          Determines which trace information appear on hover. If
          `none` or `skip` are set, no information is displayed
          upon hovering. But, if `none` is set, click and hover
          events are still fired.
      hoveron
          Sets the hover interaction mode for the parcats
          diagram. If `category`, hover interaction take place
          per category. If `color`, hover interactions take place
          per color per category. If `dimension`, hover
          interactions take place across all categories per
          dimension.
      hovertemplate
          Template string used for rendering the information that
          appear on hover box. Note that this will override
          `hoverinfo`. Variables are inserted using %{variable},
          for example "y: %{y}" as well as %{xother}, {%_xother},
          {%_xother_}, {%xother_}. When showing info for several
          points, "xother" will be added to those with different
          x positions from the first point. An underscore before
          or after "(x|y)other" will add a space on that side,
          only when this field is shown. Numbers are formatted
          using d3-format's syntax %{variable:d3-format}, for
          example "Price: %{y:$.2f}".
          https://github.com/d3/d3-format/tree/v1.4.5#d3-format
          for details on the formatting syntax. Dates are
          formatted using d3-time-format's syntax
          %{variable|d3-time-format}, for example "Day:
          %{2019-01-01|%A}". https://github.com/d3/d3-time-
          format/tree/v2.2.3#locale_format for details on the
          date formatting syntax. The variables available in
          `hovertemplate` are the ones emitted as event data
          described at this link
          https://plotly.com/javascript/plotlyjs-events/#event-
          data. Additionally, every attributes that can be
          specified per-point (the ones that are `arrayOk: true`)
          are available.  This value here applies when hovering
          over dimensions. Note that `*categorycount`,
          "colorcount" and "bandcolorcount" are only available
          when `hoveron` contains the "color" flagFinally, the
          template string has access to variables `count`,
          `probability`, `category`, `categorycount`,
          `colorcount` and `bandcolorcount`. Anything contained
          in tag `<extra>` is displayed in the secondary box, for
          example "<extra>{fullData.name}</extra>". To hide the
          secondary box completely, use an empty tag
          `<extra></extra>`.
      labelfont
          Sets the font for the `dimension` labels.
      legendgrouptitle
          :class:`plotly.graph_objects.parcats.Legendgrouptitle`
          instance or dict with compatible properties
      legendwidth
          Sets the width (in px or fraction) of the legend for
          this trace.
      line
          :class:`plotly.graph_objects.parcats.Line` instance or
          dict with compatible properties
      meta
          Assigns extra meta information associated with this
          trace that can be used in various text attributes.
          Attributes such as trace `name`, graph, axis and
          colorbar `title.text`, annotation `text`
          `rangeselector`, `updatemenues` and `sliders` `label`
          text all support `meta`. To access the trace `meta`
          values in an attribute in the same trace, simply use
          `%{meta[i]}` where `i` is the index or key of the
          `meta` item in question. To access trace `meta` in
          layout attributes, use `%{data[n[.meta[i]}` where `i`
          is the index or key of the `meta` and `n` is the trace
          index.
      metasrc
          Sets the source reference on Chart Studio Cloud for
          `meta`.
      name
          Sets the trace name. The trace name appears as the
          legend item and on hover.
      sortpaths
          Sets the path sorting algorithm. If `forward`, sort
          paths based on dimension categories from left to right.
          If `backward`, sort paths based on dimensions
          categories from right to left.
      stream
          :class:`plotly.graph_objects.parcats.Stream` instance
          or dict with compatible properties
      tickfont
          Sets the font for the `category` labels.
      uid
          Assign an id to this trace, Use this to provide object
          constancy between traces during animations and
          transitions.
      uirevision
          Controls persistence of some user-driven changes to the
          trace: `constraintrange` in `parcoords` traces, as well
          as some `editable: true` modifications such as `name`
          and `colorbar.title`. Defaults to `layout.uirevision`.
          Note that other user-driven trace attribute changes are
          controlled by `layout` attributes: `trace.visible` is
          controlled by `layout.legend.uirevision`,
          `selectedpoints` is controlled by
          `layout.selectionrevision`, and `colorbar.(x|y)`
          (accessible with `config: {editable: true}`) is
          controlled by `layout.editrevision`. Trace changes are
          tracked by `uid`, which only falls back on trace index
          if no `uid` is provided. So if your app can add/remove
          traces before the end of the `data` array, such that
          the same trace has a different index, you can still
          preserve user-driven changes if you give each trace a
          `uid` that stays with it as it moves.
      visible
          Determines whether or not this trace is visible. If
          "legendonly", the trace is not drawn, but can appear as
          a legend item (provided that the legend itself is
          visible).
  
      Returns
      -------
      Parcats
      """
      super(Parcats, self).__init__("parcats")
  
      if "_parent" in kwargs:
          self._parent = kwargs["_parent"]
          return
  
      # Validate arg
      # ------------
      if arg is None:
          arg = {}
      elif isinstance(arg, self.__class__):
          arg = arg.to_plotly_json()
      elif isinstance(arg, dict):
          arg = _copy.copy(arg)
      else:
          raise ValueError(
              """\
  The first argument to the plotly.graph_objs.Parcats
  constructor must be a dict or
  an instance of :class:`plotly.graph_objs.Parcats`"""
          )
  
      # Handle skip_invalid
      # -------------------
      self._skip_invalid = kwargs.pop("skip_invalid", False)
      self._validate = kwargs.pop("_validate", True)
  
      # Populate data dict with properties
      # ----------------------------------
      _v = arg.pop("arrangement", None)
      _v = arrangement if arrangement is not None else _v
      if _v is not None:
          self["arrangement"] = _v
      _v = arg.pop("bundlecolors", None)
      _v = bundlecolors if bundlecolors is not None else _v
      if _v is not None:
          self["bundlecolors"] = _v
      _v = arg.pop("counts", None)
      _v = counts if counts is not None else _v
      if _v is not None:
          self["counts"] = _v
      _v = arg.pop("countssrc", None)
      _v = countssrc if countssrc is not None else _v
      if _v is not None:
          self["countssrc"] = _v
      _v = arg.pop("dimensions", None)
      _v = dimensions if dimensions is not None else _v
      if _v is not None:
          self["dimensions"] = _v
      _v = arg.pop("dimensiondefaults", None)
      _v = dimensiondefaults if dimensiondefaults is not None else _v
      if _v is not None:
          self["dimensiondefaults"] = _v
      _v = arg.pop("domain", None)
      _v = domain if domain is not None else _v
      if _v is not None:
          self["domain"] = _v
      _v = arg.pop("hoverinfo", None)
      _v = hoverinfo if hoverinfo is not None else _v
      if _v is not None:
          self["hoverinfo"] = _v
      _v = arg.pop("hoveron", None)
      _v = hoveron if hoveron is not None else _v
      if _v is not None:
          self["hoveron"] = _v
      _v = arg.pop("hovertemplate", None)
      _v = hovertemplate if hovertemplate is not None else _v
      if _v is not None:
          self["hovertemplate"] = _v
      _v = arg.pop("labelfont", None)
      _v = labelfont if labelfont is not None else _v
      if _v is not None:
          self["labelfont"] = _v
      _v = arg.pop("legendgrouptitle", None)
      _v = legendgrouptitle if legendgrouptitle is not None else _v
      if _v is not None:
          self["legendgrouptitle"] = _v
      _v = arg.pop("legendwidth", None)
      _v = legendwidth if legendwidth is not None else _v
      if _v is not None:
          self["legendwidth"] = _v
      _v = arg.pop("line", None)
      _v = line if line is not None else _v
      if _v is not None:
          self["line"] = _v
      _v = arg.pop("meta", None)
      _v = meta if meta is not None else _v
      if _v is not None:
          self["meta"] = _v
      _v = arg.pop("metasrc", None)
      _v = metasrc if metasrc is not None else _v
      if _v is not None:
          self["metasrc"] = _v
      _v = arg.pop("name", None)
      _v = name if name is not None else _v
      if _v is not None:
          self["name"] = _v
      _v = arg.pop("sortpaths", None)
      _v = sortpaths if sortpaths is not None else _v
      if _v is not None:
          self["sortpaths"] = _v
      _v = arg.pop("stream", None)
      _v = stream if stream is not None else _v
      if _v is not None:
          self["stream"] = _v
      _v = arg.pop("tickfont", None)
      _v = tickfont if tickfont is not None else _v
      if _v is not None:
          self["tickfont"] = _v
      _v = arg.pop("uid", None)
      _v = uid if uid is not None else _v
      if _v is not None:
          self["uid"] = _v
      _v = arg.pop("uirevision", None)
      _v = uirevision if uirevision is not None else _v
      if _v is not None:
          self["uirevision"] = _v
      _v = arg.pop("visible", None)
      _v = visible if visible is not None else _v
      if _v is not None:
          self["visible"] = _v
  
      # Read-only literals
      # ------------------
  
      self._props["type"] = "parcats"
      arg.pop("type", None)
  
      # Process unknown kwargs
      # ----------------------
      self._process_kwargs(**dict(arg, **kwargs))
  
      # Reset skip_invalid
      # ------------------
      self._skip_invalid = False
  
imports: from plotly.basedatatypes import BaseTraceType
  import copy
label_desc: Use image node_id 49 to create a new Parcats object from inherited base classes: _BaseTraceType with example: obj = Parcats(arg, arrangement, bundlecolors, counts, countssrc, dimensions, dimensiondefaults, domain, hoverinfo, hoveron, hovertemplate, labelfont, legendgrouptitle, legendwidth, line, meta, metasrc, name, sortpaths, stream, tickfont, uid, uirevision, visible)