class_docstr: Create subplots same as df.plot(subplots=True)
  
  Simple package for `plotly.tools.subplots`
docstr: :param df: pd.DataFrame
  
  :param kind_map: dict, subplots graph kind and kwargs
      eg: dict(kind='ScatterGraph', kwargs=dict())
  
  :param layout: `go.Layout` parameters
  
  :param sub_graph_layout: Layout of each graphic, similar to 'layout'
  
  :param sub_graph_data: Instantiation parameters for each sub-graphic
      eg: [(column_name, instance_parameters), ]
  
      column_name: str or go.Figure
  
      Instance_parameters:
  
          - row: int, the row where the graph is located
  
          - col: int, the col where the graph is located
  
          - name: str, show name, default column_name in 'df'
  
          - kind: str, graph kind, default `kind` param, eg: bar, scatter, ...
  
          - graph_kwargs: dict, graph kwargs, default {}, used in `go.Bar(**graph_kwargs)`
  
  :param subplots_kwargs: `plotly.tools.make_subplots` original parameters
  
          - shared_xaxes: bool, default False
  
          - shared_yaxes: bool, default False
  
          - vertical_spacing: float, default 0.3 / rows
  
          - subplot_titles: list, default []
              If `sub_graph_data` is None, will generate 'subplot_titles' according to `df.columns`,
              this field will be discarded
  
  
          - specs: list, see `make_subplots` docs
  
          - rows: int, Number of rows in the subplot grid, default 1
              If `sub_graph_data` is None, will generate 'rows' according to `df`, this field will be discarded
  
          - cols: int, Number of cols in the subplot grid, default 1
              If `sub_graph_data` is None, will generate 'cols' according to `df`, this field will be discarded
  
  
  :param kwargs:
docstr_tok: [":","param","df",":","pd.DataFrame",":","param","kind_map",":","dict",",","subplots","graph","kind","and","kwargs","eg",":","dict","(","kind='ScatterGraph","'",",","kwargs=dict","(",")",")",":","param","layout",":","`","go.Layout","`","parameters",":","param","sub_graph_layout",":","Layout","of","each","graphic",",","similar","to","'layout'",":","param","sub_graph_data",":","Instantiation","parameters","for","each","sub-graphic","eg",":","[","(","column_name",",","instance_parameters",")",",","]","column_name",":","str","or","go.Figure","Instance_parameters",":","-","row",":","int",",","the","row","where","the","graph","is","located","-","col",":","int",",","the","col","where","the","graph","is","located","-","name",":","str",",","show","name",",","default","column_name","in","'df'","-","kind",":","str",",","graph","kind",",","default","`","kind","`","param",",","eg",":","bar",",","scatter",",","...","-","graph_kwargs",":","dict",",","graph","kwargs",",","default","{","}",",","used","in","`","go.Bar","(","*","*","graph_kwargs",")","`",":","param","subplots_kwargs",":","`","plotly.tools.make_subplots","`","original","parameters","-","shared_xaxes",":","bool",",","default","False","-","shared_yaxes",":","bool",",","default","False","-","vertical_spacing",":","float",",","default","0.3","\/","rows","-","subplot_titles",":","list",",","default","[","]","If","`","sub_graph_data","`","is","None",",","will","generate","'subplot_titles","'","according","to","`","df.columns","`",",","this","field","will","be","discarded","-","specs",":","list",",","see","`","make_subplots","`","docs","-","rows",":","int",",","Number","of","rows","in","the","subplot","grid",",","default","1","If","`","sub_graph_data","`","is","None",",","will","generate","'rows","'","according","to","`","df","`",",","this","field","will","be","discarded","-","cols",":","int",",","Number","of","cols","in","the","subplot","grid",",","default","1","If","`","sub_graph_data","`","is","None",",","will","generate","'cols","'","according","to","`","df","`",",","this","field","will","be","discarded",":","param","kwargs",":"]
code: def __init__(
      self,
      df: pd.DataFrame = None,
      kind_map: dict = None,
      layout: dict = None,
      sub_graph_layout: dict = None,
      sub_graph_data: list = None,
      subplots_kwargs: dict = None,
      **kwargs,
  ):
      """
  
      :param df: pd.DataFrame
  
      :param kind_map: dict, subplots graph kind and kwargs
          eg: dict(kind='ScatterGraph', kwargs=dict())
  
      :param layout: `go.Layout` parameters
  
      :param sub_graph_layout: Layout of each graphic, similar to 'layout'
  
      :param sub_graph_data: Instantiation parameters for each sub-graphic
          eg: [(column_name, instance_parameters), ]
  
          column_name: str or go.Figure
  
          Instance_parameters:
  
              - row: int, the row where the graph is located
  
              - col: int, the col where the graph is located
  
              - name: str, show name, default column_name in 'df'
  
              - kind: str, graph kind, default `kind` param, eg: bar, scatter, ...
  
              - graph_kwargs: dict, graph kwargs, default {}, used in `go.Bar(**graph_kwargs)`
  
      :param subplots_kwargs: `plotly.tools.make_subplots` original parameters
  
              - shared_xaxes: bool, default False
  
              - shared_yaxes: bool, default False
  
              - vertical_spacing: float, default 0.3 / rows
  
              - subplot_titles: list, default []
                  If `sub_graph_data` is None, will generate 'subplot_titles' according to `df.columns`,
                  this field will be discarded
  
  
              - specs: list, see `make_subplots` docs
  
              - rows: int, Number of rows in the subplot grid, default 1
                  If `sub_graph_data` is None, will generate 'rows' according to `df`, this field will be discarded
  
              - cols: int, Number of cols in the subplot grid, default 1
                  If `sub_graph_data` is None, will generate 'cols' according to `df`, this field will be discarded
  
  
      :param kwargs:
  
      """
  
      self._df = df
      self._layout = layout
      self._sub_graph_layout = sub_graph_layout
  
      self._kind_map = kind_map
      if self._kind_map is None:
          self._kind_map = dict(kind="ScatterGraph", kwargs=dict())
  
      self._subplots_kwargs = subplots_kwargs
      if self._subplots_kwargs is None:
          self._init_subplots_kwargs()
  
      self.__cols = self._subplots_kwargs.get(
          "cols", 2
      )  # pylint: disable=W0238
      self.__rows = self._subplots_kwargs.get(  # pylint: disable=W0238
          "rows", math.ceil(len(self._df.columns) / self.__cols)
      )
  
      self._sub_graph_data = sub_graph_data
      if self._sub_graph_data is None:
          self._init_sub_graph_data()
  
      self._init_figure()
  
imports: import math
  import importlib
  from typing import Iterable
  import pandas
  import plotly.offline
  import plotly.graph_objs
  from plotly.subplots import make_subplots
  from plotly.figure_factory import create_distplot
label_desc: Use image node_id 1 to create a new SubplotsGraph object  with example: obj = SubplotsGraph(df, kind_map, layout, sub_graph_layout, sub_graph_data, subplots_kwargs)