class_docstr: BoxPlot plots the ErrorBar Element type and supporting
  both horizontal and vertical error bars via the 'horizontal'
  plot option.
class_docstr_tok: ["BoxPlot","plots","the","ErrorBar","Element","type","and","supporting","both","horizontal","and","vertical","error","bars","via","the","'horizontal'","plot","option","."]
code: def get_data(self, element, ranges, style):
      if element.kdims:
          with sorted_context(False):
              groups = element.groupby(element.kdims).data.items()
      else:
          groups = [(element.label, element)]
  
      data, labels = [], []
      for key, group in groups:
          if element.kdims:
              label = ",".join(
                  [
                      d.pprint_value(v)
                      for d, v in zip(element.kdims, key)
                  ]
              )
          else:
              label = key
          d = group[group.vdims[0]]
          data.append(d[np.isfinite(d)])
          labels.append(label)
      style["labels"] = labels
      style = {
          k: v for k, v in style.items() if k not in ["zorder", "label"]
      }
      style["vert"] = not self.invert_axes
      format_kdims = [
          kd.clone(value_format=None) for kd in element.kdims
      ]
      return (
          (data,),
          style,
          {"dimensions": [format_kdims, element.vdims[0]]},
      )
  
imports: import numpy
  import param
  from ...core.ndmapping import sorted_context
  from ..mixins import MultiDistributionMixin
  from .chart import AreaPlot, ChartPlot
  from .path import PolygonPlot
  from .plot import AdjoinedPlot
label_desc: Use image node_id 1 for calling the BoxPlot obj's underlying member method code with example usage: obj.get_data(element, ranges, style) and returns: data,  style,  dict