.. wxPython Phoenix documentation This file was generated by Phoenix's sphinx generator and associated tools, do not edit by hand. Copyright: (c) 2011-2020 by Total Control Software License: wxWindows License .. include:: headings.inc .. currentmodule:: wx.lib.plot.polyobjects .. highlight:: python .. _wx.lib.plot.polyobjects.PolyBoxPlot: ========================================================================================================================================== |phoenix_title| **wx.lib.plot.polyobjects.PolyBoxPlot** ========================================================================================================================================== Creates a PolyBoxPlot object. :param data: Raw data to create a box plot from. :type data: sequence of int or float :param **attr: keyword attributes ================================= ============= ======================= Keyword and Default Description Type ================================= ============= ======================= ``colour='black'`` edge color :class:`wx.Colour` ``width=1`` edge width float ``style=wx.PENSTYLE_SOLID`` edge style :class:`wx.PenStyle` ``legend=''`` legend string str ================================= ============= ======================= .. note:: ``np.NaN`` and ``np.inf`` values are ignored. .. admonition:: TODO + [ ] Figure out a better way to get multiple box plots side-by-side (current method is a hack). + [ ] change the X axis to some labels. + [ ] Change getClosestPoint to only grab box plot items and outlers? Currently grabs every data point. + [ ] Add more customization such as Pens/Brushes, outlier shapes/size, and box width. + [ ] Figure out how I want to handle log-y: log data then calcBP? Or should I calc the BP first then the plot it on a log scale? | |class_hierarchy| Class Hierarchy ================================= .. raw:: html
Inheritance diagram for class PolyBoxPlot:
| |super_classes| Known Superclasses ================================== :class:`wx.lib.plot.polyobjects.PolyPoints` | |method_summary| Methods Summary ================================ ================================================================================ ================================================================================ :meth:`~wx.lib.plot.polyobjects.PolyBoxPlot.__init__` Initialize self. See help(type(self)) for accurate signature. :meth:`~wx.lib.plot.polyobjects.PolyBoxPlot.boundingBox` Returns bounding box for the plot. :meth:`~wx.lib.plot.polyobjects.PolyBoxPlot.calcBpData` Box plot points :meth:`~wx.lib.plot.polyobjects.PolyBoxPlot.calcOutliers` Calculates the outliers. Must be called after calcBpData. :meth:`~wx.lib.plot.polyobjects.PolyBoxPlot.draw` Draws a box plot on the DC. :meth:`~wx.lib.plot.polyobjects.PolyBoxPlot.getClosestPoint` Returns the index of closest point on the curve, pointXY, :meth:`~wx.lib.plot.polyobjects.PolyBoxPlot.getSymExtent` Width and Height of Marker ================================================================================ ================================================================================ | |api| Class API =============== .. class:: PolyBoxPlot(PolyPoints) Creates a PolyBoxPlot object. :param data: Raw data to create a box plot from. :type data: sequence of int or float :param **attr: keyword attributes ================================= ============= ======================= Keyword and Default Description Type ================================= ============= ======================= ``colour='black'`` edge color :class:`wx.Colour` ``width=1`` edge width float ``style=wx.PENSTYLE_SOLID`` edge style :class:`wx.PenStyle` ``legend=''`` legend string str ================================= ============= ======================= .. note:: ``np.NaN`` and ``np.inf`` values are ignored. .. admonition:: TODO + [ ] Figure out a better way to get multiple box plots side-by-side (current method is a hack). + [ ] change the X axis to some labels. + [ ] Change getClosestPoint to only grab box plot items and outlers? Currently grabs every data point. + [ ] Add more customization such as Pens/Brushes, outlier shapes/size, and box width. + [ ] Figure out how I want to handle log-y: log data then calcBP? Or should I calc the BP first then the plot it on a log scale? .. method:: __init__(self, points, \*\*attr) Initialize self. See help(type(self)) for accurate signature. .. method:: boundingBox(self) Returns bounding box for the plot. Override method. .. method:: calcBpData(self, data=None) Box plot points: Median (50%) 75% 25% low_whisker = lowest value that's >= (25% - (IQR * 1.5)) high_whisker = highest value that's <= 75% + (IQR * 1.5) outliers are outside of 1.5 * IQR Parameters ---------- data : array-like The data to plot Returns ------- bpdata : collections.namedtuple Descriptive statistics for data: (min_data, low_whisker, q25, median, q75, high_whisker, max_data) .. method:: calcOutliers(self, data=None) Calculates the outliers. Must be called after calcBpData. .. method:: draw(self, dc, printerScale, coord=None) Draws a box plot on the DC. Notes ----- The following draw order is required: 1. First the whisker line 2. Then the IQR box 3. Lasly the median line. This is because + The whiskers are drawn as single line rather than two lines + The median line must be visible over the box if the box has a fill. Other than that, the draw order can be changed. .. method:: getClosestPoint(self, pntXY, pointScaled=True) Returns the index of closest point on the curve, pointXY, scaledXY, distance x, y in user coords. Override method. if pointScaled == True, then based on screen coords if pointScaled == False, then based on user coords .. method:: getSymExtent(self, printerScale) Width and Height of Marker