class_docstr: Make plots of Series or DataFrame.
  
  Uses the backend specified by the
  option ``plotting.backend``. By default, matplotlib is used.
  
  Parameters
  ----------
  data : Series or DataFrame
      The object for which the method is called.
  x : label or position, default None
      Only used if data is a DataFrame.
  y : label, position or list of label, positions, default None
      Allows plotting of one column versus another. Only used if data is a
      DataFrame.
  kind : str
      The kind of plot to produce:
  
      - 'line' : line plot (default)
      - 'bar' : vertical bar plot
      - 'barh' : horizontal bar plot
      - 'hist' : histogram
      - 'box' : boxplot
      - 'kde' : Kernel Density Estimation plot
      - 'density' : same as 'kde'
      - 'area' : area plot
      - 'pie' : pie plot
      - 'scatter' : scatter plot (DataFrame only)
      - 'hexbin' : hexbin plot (DataFrame only)
  ax : matplotlib axes object, default None
      An axes of the current figure.
  subplots : bool or sequence of iterables, default False
      Whether to group columns into subplots:
  
      - ``False`` : No subplots will be used
      - ``True`` : Make separate subplots for each column.
      - sequence of iterables of column labels: Create a subplot for each
        group of columns. For example `[('a', 'c'), ('b', 'd')]` will
        create 2 subplots: one with columns 'a' and 'c', and one
        with columns 'b' and 'd'. Remaining columns that aren't specified
        will be plotted in additional subplots (one per column).
  
        .. versionadded:: 1.5.0
  
  sharex : bool, default True if ax is None else False
      In case ``subplots=True``, share x axis and set some x axis labels
      to invisible; defaults to True if ax is None otherwise False if
      an ax is passed in; Be aware, that passing in both an ax and
      ``sharex=True`` will alter all x axis labels for all axis in a figure.
  sharey : bool, default False
      In case ``subplots=True``, share y axis and set some y axis labels to invisible.
  layout : tuple, optional
      (rows, columns) for the layout of subplots.
  figsize : a tuple (width, height) in inches
      Size of a figure object.
  use_index : bool, default True
      Use index as ticks for x axis.
  title : str or list
      Title to use for the plot. If a string is passed, print the string
      at the top of the figure. If a list is passed and `subplots` is
      True, print each item in the list above the corresponding subplot.
  grid : bool, default None (matlab style default)
      Axis grid lines.
  legend : bool or {'reverse'}
      Place legend on axis subplots.
  style : list or dict
      The matplotlib line style per column.
  logx : bool or 'sym', default False
      Use log scaling or symlog scaling on x axis.
  
  logy : bool or 'sym' default False
      Use log scaling or symlog scaling on y axis.
  
  loglog : bool or 'sym', default False
      Use log scaling or symlog scaling on both x and y axes.
  
  xticks : sequence
      Values to use for the xticks.
  yticks : sequence
      Values to use for the yticks.
  xlim : 2-tuple/list
      Set the x limits of the current axes.
  ylim : 2-tuple/list
      Set the y limits of the current axes.
  xlabel : label, optional
      Name to use for the xlabel on x-axis. Default uses index name as xlabel, or the
      x-column name for planar plots.
  
      .. versionadded:: 1.1.0
  
      .. versionchanged:: 1.2.0
  
         Now applicable to planar plots (`scatter`, `hexbin`).
  
      .. versionchanged:: 2.0.0
  
          Now applicable to histograms.
  
  ylabel : label, optional
      Name to use for the ylabel on y-axis. Default will show no ylabel, or the
      y-column name for planar plots.
  
      .. versionadded:: 1.1.0
  
      .. versionchanged:: 1.2.0
  
         Now applicable to planar plots (`scatter`, `hexbin`).
  
      .. versionchanged:: 2.0.0
  
          Now applicable to histograms.
  
  rot : float, default None
      Rotation for ticks (xticks for vertical, yticks for horizontal
      plots).
  fontsize : float, default None
      Font size for xticks and yticks.
  colormap : str or matplotlib colormap object, default None
      Colormap to select colors from. If string, load colormap with that
      name from matplotlib.
  colorbar : bool, optional
      If True, plot colorbar (only relevant for 'scatter' and 'hexbin'
      plots).
  position : float
      Specify relative alignments for bar plot layout.
      From 0 (left/bottom-end) to 1 (right/top-end). Default is 0.5
      (center).
  table : bool, Series or DataFrame, default False
      If True, draw a table using the data in the DataFrame and the data
      will be transposed to meet matplotlib's default layout.
      If a Series or DataFrame is passed, use passed data to draw a
      table.
  yerr : DataFrame, Series, array-like, dict and str
      See :ref:`Plotting with Error Bars <visualization.errorbars>` for
      detail.
  xerr : DataFrame, Series, array-like, dict and str
      Equivalent to yerr.
  stacked : bool, default False in line and bar plots, and True in area plot
      If True, create stacked plot.
  secondary_y : bool or sequence, default False
      Whether to plot on the secondary y-axis if a list/tuple, which
      columns to plot on secondary y-axis.
  mark_right : bool, default True
      When using a secondary_y axis, automatically mark the column
      labels with "(right)" in the legend.
  include_bool : bool, default is False
      If True, boolean values can be plotted.
  backend : str, default None
      Backend to use instead of the backend specified in the option
      ``plotting.backend``. For instance, 'matplotlib'. Alternatively, to
      specify the ``plotting.backend`` for the whole session, set
      ``pd.options.plotting.backend``.
  **kwargs
      Options to pass to matplotlib plotting method.
  
  Returns
  -------
  :class:`matplotlib.axes.Axes` or numpy.ndarray of them
      If the backend is not the default matplotlib one, the return value
      will be the object returned by the backend.
  
  Notes
  -----
  - See matplotlib documentation online for more on this subject
  - If `kind` = 'bar' or 'barh', you can specify relative alignments
    for bar plot layout by `position` keyword.
    From 0 (left/bottom-end) to 1 (right/top-end). Default is 0.5
    (center)
docstr: Generate a hexagonal binning plot.
  
  Generate a hexagonal binning plot of `x` versus `y`. If `C` is `None`
  (the default), this is a histogram of the number of occurrences
  of the observations at ``(x[i], y[i])``.
  
  If `C` is specified, specifies values at given coordinates
  ``(x[i], y[i])``. These values are accumulated for each hexagonal
  bin and then reduced according to `reduce_C_function`,
  having as default the NumPy's mean function (:meth:`numpy.mean`).
  (If `C` is specified, it must also be a 1-D sequence
  of the same length as `x` and `y`, or a column label.)
  
  Parameters
  ----------
  x : int or str
      The column label or position for x points.
  y : int or str
      The column label or position for y points.
  C : int or str, optional
      The column label or position for the value of `(x, y)` point.
  reduce_C_function : callable, default `np.mean`
      Function of one argument that reduces all the values in a bin to
      a single number (e.g. `np.mean`, `np.max`, `np.sum`, `np.std`).
  gridsize : int or tuple of (int, int), default 100
      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.
  **kwargs
      Additional keyword arguments are documented in
      :meth:`DataFrame.plot`.
  
  Returns
  -------
  matplotlib.AxesSubplot
      The matplotlib ``Axes`` on which the hexbin is plotted.
  
  See Also
  --------
  DataFrame.plot : Make plots of a DataFrame.
  matplotlib.pyplot.hexbin : Hexagonal binning plot using matplotlib,
      the matplotlib function that is used under the hood.
  
  Examples
  --------
  The following examples are generated with random data from
  a normal distribution.
  
  .. plot::
      :context: close-figs
  
      >>> n = 10000
      >>> df = pd.DataFrame({'x': np.random.randn(n),
      ...                    'y': np.random.randn(n)})
      >>> ax = df.plot.hexbin(x='x', y='y', gridsize=20)
  
  The next example uses `C` and `np.sum` as `reduce_C_function`.
  Note that `'observations'` values ranges from 1 to 5 but the result
  plot shows values up to more than 25. This is because of the
  `reduce_C_function`.
  
  .. plot::
      :context: close-figs
  
      >>> n = 500
      >>> df = pd.DataFrame({
      ...     'coord_x': np.random.uniform(-3, 3, size=n),
      ...     'coord_y': np.random.uniform(30, 50, size=n),
      ...     'observations': np.random.randint(1,5, size=n)
      ...     })
      >>> ax = df.plot.hexbin(x='coord_x',
      ...                     y='coord_y',
      ...                     C='observations',
      ...                     reduce_C_function=np.sum,
      ...                     gridsize=10,
      ...                     cmap="viridis")
docstr_tok: ["Generate","a","hexagonal","binning","plot",".","Generate","a","hexagonal","binning","plot","of","`","x","`","versus","`","y","`",".","If","`","C","`","is","`","None","`","(","the","default",")",",","this","is","a","histogram","of","the","number","of","occurrences","of","the","observations","at","``","(","x","[","i","]",",","y","[","i","]",")","``",".","If","`","C","`","is","specified",",","specifies","values","at","given","coordinates","``","(","x","[","i","]",",","y","[","i","]",")","``",".","These","values","are","accumulated","for","each","hexagonal","bin","and","then","reduced","according","to","`","reduce_C_function","`",",","having","as","default","the","NumPy","'s","mean","function","(",":","meth",":","`","numpy.mean","`",")",".","(","If","`","C","`","is","specified",",","it","must","also","be","a","1-D","sequence","of","the","same","length","as","`","x","`","and","`","y","`",",","or","a","column","label",".",")","Parameters","--","--","--","--","--","x",":","int","or","str","The","column","label","or","position","for","x","points",".","y",":","int","or","str","The","column","label","or","position","for","y","points",".","C",":","int","or","str",",","optional","The","column","label","or","position","for","the","value","of","`","(","x",",","y",")","`","point",".","reduce_C_function",":","callable",",","default","`","np.mean","`","Function","of","one","argument","that","reduces","all","the","values","in","a","bin","to","a","single","number","(","e.g",".","`","np.mean","`",",","`","np.max","`",",","`","np.sum","`",",","`","np.std","`",")",".","gridsize",":","int","or","tuple","of","(","int",",","int",")",",","default","100","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",".","*","*","kwargs","Additional","keyword","arguments","are","documented","in",":","meth",":","`","DataFrame.plot","`",".","Returns","--","--","--","-","matplotlib.AxesSubplot","The","matplotlib","``","Axes","``","on","which","the","hexbin","is","plotted",".","See","Also","--","--","--","--","DataFrame.plot",":","Make","plots","of","a","DataFrame",".","matplotlib.pyplot.hexbin",":","Hexagonal","binning","plot","using","matplotlib",",","the","matplotlib","function","that","is","used","under","the","hood",".","Examples","--","--","--","--","The","following","examples","are","generated","with","random","data","from","a","normal","distribution",".","..","plot",":",":",":","context",":","close-figs",">",">",">","n","=","10000",">",">",">","df","=","pd.DataFrame","(","{","'","x","'",":","np.random.randn","(","n",")",",","...","'","y","'",":","np.random.randn","(","n",")","}",")",">",">",">","ax","=","df.plot.hexbin","(","x=","'","x","'",",","y=","'","y","'",",","gridsize=20",")","The","next","example","uses","`","C","`","and","`","np.sum","`","as","`","reduce_C_function","`",".","Note","that","`","'observations","'","`","values","ranges","from","1","to","5","but","the","result","plot","shows","values","up","to","more","than","25",".","This","is","because","of","the","`","reduce_C_function","`",".","..","plot",":",":",":","context",":","close-figs",">",">",">","n","=","500",">",">",">","df","=","pd.DataFrame","(","{","...","'coord_x","'",":","np.random.uniform","(","-3",",","3",",","size=n",")",",","...","'coord_y","'",":","np.random.uniform","(","30",",","50",",","size=n",")",",","...","'observations","'",":","np.random.randint","(","1,5",",","size=n",")","...","}",")",">",">",">","ax","=","df.plot.hexbin","(","x='coord_x","'",",","...","y='coord_y","'",",","...","C='observations","'",",","...","reduce_C_function=np.sum",",","...","gridsize=10",",","...","cmap=","''","viridis","''",")"]
code: def hexbin(
      self,
      x,
      y,
      C=None,
      reduce_C_function=None,
      gridsize=None,
      **kwargs,
  ) -> PlotAccessor:
      """
      Generate a hexagonal binning plot.
  
      Generate a hexagonal binning plot of `x` versus `y`. If `C` is `None`
      (the default), this is a histogram of the number of occurrences
      of the observations at ``(x[i], y[i])``.
  
      If `C` is specified, specifies values at given coordinates
      ``(x[i], y[i])``. These values are accumulated for each hexagonal
      bin and then reduced according to `reduce_C_function`,
      having as default the NumPy's mean function (:meth:`numpy.mean`).
      (If `C` is specified, it must also be a 1-D sequence
      of the same length as `x` and `y`, or a column label.)
  
      Parameters
      ----------
      x : int or str
          The column label or position for x points.
      y : int or str
          The column label or position for y points.
      C : int or str, optional
          The column label or position for the value of `(x, y)` point.
      reduce_C_function : callable, default `np.mean`
          Function of one argument that reduces all the values in a bin to
          a single number (e.g. `np.mean`, `np.max`, `np.sum`, `np.std`).
      gridsize : int or tuple of (int, int), default 100
          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.
      **kwargs
          Additional keyword arguments are documented in
          :meth:`DataFrame.plot`.
  
      Returns
      -------
      matplotlib.AxesSubplot
          The matplotlib ``Axes`` on which the hexbin is plotted.
  
      See Also
      --------
      DataFrame.plot : Make plots of a DataFrame.
      matplotlib.pyplot.hexbin : Hexagonal binning plot using matplotlib,
          the matplotlib function that is used under the hood.
  
      Examples
      --------
      The following examples are generated with random data from
      a normal distribution.
  
      .. plot::
          :context: close-figs
  
          >>> n = 10000
          >>> df = pd.DataFrame({'x': np.random.randn(n),
          ...                    'y': np.random.randn(n)})
          >>> ax = df.plot.hexbin(x='x', y='y', gridsize=20)
  
      The next example uses `C` and `np.sum` as `reduce_C_function`.
      Note that `'observations'` values ranges from 1 to 5 but the result
      plot shows values up to more than 25. This is because of the
      `reduce_C_function`.
  
      .. plot::
          :context: close-figs
  
          >>> n = 500
          >>> df = pd.DataFrame({
          ...     'coord_x': np.random.uniform(-3, 3, size=n),
          ...     'coord_y': np.random.uniform(30, 50, size=n),
          ...     'observations': np.random.randint(1,5, size=n)
          ...     })
          >>> ax = df.plot.hexbin(x='coord_x',
          ...                     y='coord_y',
          ...                     C='observations',
          ...                     reduce_C_function=np.sum,
          ...                     gridsize=10,
          ...                     cmap="viridis")
      """
      if reduce_C_function is not None:
          kwargs["reduce_C_function"] = reduce_C_function
      if gridsize is not None:
          kwargs["gridsize"] = gridsize
  
      return self(kind="hexbin", x=x, y=y, C=C, **kwargs)
  
imports: from __future__ import annotations
  import importlib
  import types
  from typing import TYPE_CHECKING, Sequence
  from pandas._config import get_option
  from pandas._typing import IndexLabel
  from pandas.util._decorators import Appender, Substitution
  from pandas.core.dtypes.common import is_integer, is_list_like
  from pandas.core.dtypes.generic import ABCDataFrame, ABCSeries
  from pandas.core.base import PandasObject
label_desc: Use image node_id 13 for calling the PlotAccessor obj's underlying member method code with example usage: obj.hexbin(x, y, C, reduce_C_function, gridsize) and returns: self