+ Added and updated docstrings for some functions.
+ Box Plot updates and bugfixes
+ point-snap now only snaps to outliers, fence, and quartiles as intended,
rather than snapping to all points.
+ Box plots now require 2D data, where the 1st dimension is the x location
+ this mimics the bar chart workaround.
+ Moved outlier calculation to separate method
+ Updated some error texts to be a bit more clear
+ Starting work on Chart class again. We'll see if I get anywhere with it...
+ Added _DisplaySide class
+ this class is uses for storing the booleans associated with display various sides of
the plot. Basically it's a fancy structure for a list of 4 boolean values (bottom,
left, top, right). We'll see if I actually keep it.
+ Slightly reminiscent of a collections.namedtuple
+ Has type and value checking when setting attributes
+ Changed ticks, axes, and axesValues to use the _DisplaySide class to determine
which sides of each to show.
+ Changed setters for EnableTicks, EnableAxes, and EnableAxesValues to essentially have
overload methods:
+ self.EnableTicks = True # enables all ticks
+ self.EnableTicks = (True, True) # enables Bottom and left only
+ self.EnableTicks = (True, True, True, True) # enables all ticks
+ removed last call to _titleEnabled, replaced with EnablePlotTitle property.
+ TODO: add deprecation warning to EnableTitle property (replaced by EnablePlotTitle)
+ Changed _drawTicks, _drawAxes, _drawAxesValues to draw each side independently.
+ Added demo items for all of the above.
+ Fixed issue in demo where Zoom and Drag menu items would be incorrectly set to checked
when the other was disabled.
+ Added a NamedTuple for axis show/hide booleans
+ Move things around in the demo menus.
+ Updated EnableAxes.setter to account for 3 usage cases:
+ bool: turn all axis on/off
+ 2-tuple of bool: only control bottom and left
+ 4-tuple of bool: individual control of all 4 axes
+ Added SavedPen context manager
+ Changed SavePen decorator to use this CM.
+ Added option for Log10 and Abs on X and Y scales (AbsScale property)
+ Added demo for both
+ Changed instances of __getattr__ (which took care of returning log10 data) to
property accessors.
+ Changed logic of log10 transform to account for AbsScale property
+ Data is still stored internally as non-transformed data.
+ Updates to BoxPlot
+ Hacked together something that allows multiple box plots on the same chart.
+ I'm not happy with it, which is why I've started working on a separate class called
'Chart' which will handle data that uses discrete x-axis values (such as BoxPlot,
Pareto, and BarChart).
+ Separated out each draw action to different methods
+ Verified that getClosestPoint works OK for now
+ Added TODO list to docstring
+ Fixed a few getters/setters that I'd previously missed when converting to properties.
+ Changed grid to be ON by default
+ Changed comments to docstrings on _drawXObjects functions
+ Changed some demos to include negative data to show off AbsScale functionality
+ Changed _draw4Objects demo so that the line is visible
Added ability to plot a box plot.
Added demo of box plot.
Added connecting line to _draw2Objects in demo.
TODO:
+ customization
+ refactoring
+ documentation
+ other (see TODO in BoxPlot.draw method)
+ changed instances of time.clock to time.perf_counter (Python 3.3+)
+ Moved drawing of plot title and axes label to separate methods
+ Made drawing of axes labels a attribute of PlotCanvas.
+ Added ability to turn axes labels or plot title on and off individually
+ Added demo for this
+ Fixed minor formatting issues in docstrings and comments
+ Added deprecation warnings to getters and setters
+ replaced with properties
+ Added PendingDeprecation decorator to do this
+ all instances of getters/setters have been replaced with property accessors
+ All objects now explicitly inherit from `object`
+ Changed new customization options to use a wx.Pen instance instead of separate Colour, Width, and Style properties
+ left _gridColour since it's old API
+ Fixed error where wxFlexGridSizer.AddGrowableRow would throw 'invalid row index'
+ Moved sizer.AddGrowableRow to after setting the sizer in PlotCanvas
+ Added 'drawstyle' option to PolyLine which mimmics matplotlib's 'drawstyle' option
+ Added decorator that will reset the dc pen after a function call
+ Fixed FutureWarning errors for `x == None` (replaced with `x is None`)
+ Added more options for plot display
+ Color, style, and width options for: grid, centerline, ticks, axes, diagonal
+ length for: ticks
+ Location (bottom, left, top, right) for: ticks, axes # TODO: API rename?
+ Moved drawing of plot items to separate private methods (previously all in _drawAxes)
+ _drawPlotAreaItems: draws each plot area item
+ Added menu items to demo which shows off new options.