code: def bin(sample, options={}, **kwargs):
      """Draw a histogram in the current context figure.
      Parameters
      ----------
      sample: numpy.ndarray, 1d
          The sample for which the histogram must be generated.
      options: dict (default: {})
          Options for the scales to be created. If a scale labeled 'x'
          is required for that mark, options['x'] contains optional keyword
          arguments for the constructor of the corresponding scale type.
      axes_options: dict (default: {})
          Options for the axes to be created. If an axis labeled 'x' is
          required for that mark, axes_options['x'] contains optional
          keyword arguments for the constructor of the corresponding axis type.
      """
      kwargs["sample"] = sample
      scales = kwargs.pop("scales", {})
      for xy in ["x", "y"]:
          if xy not in scales:
              dimension = _get_attribute_dimension(xy, Bars)
              if dimension in _context["scales"]:
                  scales[xy] = _context["scales"][dimension]
              else:
                  scales[xy] = LinearScale(**options.get(xy, {}))
                  _context["scales"][dimension] = scales[xy]
      kwargs["scales"] = scales
      return _draw_mark(Bins, options=options, **kwargs)
  
imports: import sys
  from collections import OrderedDict
  from IPython.display import display
  from ipywidgets import Image
  from numpy import arange, issubdtype, array, column_stack, shape
  from .figure import Figure
  from bqscales import Scale, LinearScale, Mercator
  from .axes import Axis
  from .marks import Lines, Scatter, Hist, Bars, OHLC, Pie, Map, Image, Label, HeatMap, GridHeatMap, topo_load, Boxplot, Bins
  from .interacts import BrushIntervalSelector, FastIntervalSelector, BrushSelector, IndexSelector, MultiSelector, LassoSelector
  from traitlets.utils.sentinel import Sentinel
  import functools
label_desc: Use image node_id 28 for calling a global function with example usage: bin(sample, options) and returns: _draw_mark