# WXMPLOT: plotting widgets for Python

wxmplot provides high-level plotting of numerical data for Python, combining wxPython widgets and matplotlib.

While matplotlib provides excellent general-purpose plotting functionality supporting many backends, it does not have tight integration with any particular GUI toolkit. The matplotlib.pyplot module provides high-level functions for plotting and displaying data, but interacting with and customizing the plots from it Navigation Toolbars are minimal. On the other hand, wxPython has some basic plotting functionality, but it has nothing as good as matplotlib.

wxmplot bridges the gap between matplotlib and wxPython by providing wxPython widgets and user-friendly functions for basic line plots, image display, and some custom plots. The displays made with wxmplot give end-users highly interactive displays of their data that allow zooming and un-zooming, reporting mouse positions, rotating images, and changing color themes. The displays are highly configurable, helping the user to change many aspects of the plot such as colors, line types, labels, marker type, color tables, smoothing. While wxmplot does not directly expose all of matplotlib’s capabilities, it focuses on highly-interactive plotting and image display tools that handle many of the most common plotting and image display needs for scientific data, and permits access and to the underlying matplotlib API for those that need it.

The `wxmplot.interactive` functions are particularly easy to use, and enable script writers to make XY line plots and image displays from their data, and to interact with and configure these displays as part of exploratory data analysis. Programmers can use the wxmplot widgets to include these high quality graphical displays of data in their wxPython applications to enable users to explore their data.

- Downloading and Installation
  - Prerequisites
  - Installation
  - Development Version
  - Installation from Source
  - License
- wxmplot Overview
  - Line Plots with `plot()`
  - User Interaction and Configuring Line Plots
  - Displaying images with `imshow()` and `contour()`
  - User Interaction and Configuring Image and Contour displays
- Interactive wxmplot displays
  - Plotting in an interactive session
  - Using the `interactive` functions from a script
  - Line Plotting with `plot()` and related functions
  - Displaying images with `imshow()` and `contour()`
  - Functions for working with the interactive windows
- `PlotPanel`: A wx.Panel for Basic Line Plots
  - `PlotPanel`
  - `PlotPanel` methods
  - Using date-time data with `plot()`
  - `PlotFrame`: a wx.Frame showing a `PlotPanel`
  - `PlotApp`: a wx.App showing a `PlotFrame`
- `ImagePanel`: A wx.Panel for Image Display
  - `ImagePanel`
  - `ImagePanel` methods
  - `ImagePanel` callback attributes
  - `ImageFrame`: A wx.Frame for Image Display
  - Image configuration with `ImageConfig`
- wxmplot Examples
  - Dynamic examples not shown here
  - Scatterplot Example
  - Plotting with errorbars
  - Plotting data from a datafile
  - Using Left and Right Axes
  - Plotting with alpha-fill to show area under a curve
  - Plotting with alpha-fill to show uncertainty
  - Using set_data_generator for user-controlled, dynamic plotting
  - Displaying and image of a TIFF file
  - 3-Color Image
- Speciality wxmplot displays
  - MultiPlotFrame
  - StackedPlotFrame
  - ImageMatrixFrame
- Comparisons of wxmplot with other Python Plotting tools
  - Comparison with Matplotlib.pyplot
  - Comparison with WxPlot
  - Comparison with Plotly
  - Comparison with PyQtGraph
  - Comparison with PyQtGraph/PythonGUIs
  - Comparison with PLPlot
  - Comparison with Dislin
  - Conclusion