wxMathPlot - Plot Library for wxWidgets Applications
wxMathPlot

wxMathPlot is a framework for mathematical graph plotting in wxWindows.

The framework is designed for convenience and ease of use.

Screenshots

Go to the screenshots page.

Overview

The heart of wxMathPlot is mpWindow, which is a 2D canvas for plot layers. mpWindow can be embedded as subwindow in a wxPane, a wxFrame, or any other wxWindow. mpWindow provides a zoomable and moveable view of the layers. The current view can be controlled with the mouse, the scrollbars, and a context menu.

Plot layers are implementations of the abstract base class mpLayer. Those can be function plots, scale rulers, or any other vector data visualisation. wxMathPlot provides two mpLayer implementations for plotting horizontal and vertical rulers: mpScaleX and mpScaleY. For convenient function plotting a series of classes derived from mpLayer are provided, like mpFX, mpProfile, mpLegend and so on. These base classes already come with plot code, user's own functions can be implemented by overriding just one member for retrieving a function value.

mpWindow has built-in support for mouse-based pan and zoom through intuitive combinations of buttons and the mouse wheel. It also incorporates an optional caching mechanism to avoid flicker. Plots can be easily sent to printers or exported in bitmap formats like PNG, BMP or JPEG.

Coding conventions

wxMathPlot sticks to wxWindow's coding conventions.
All entities defined by wxMathPlot have the prefix mp.

Author and license

wxMathPlot is published under the terms of the wxWindow license.
The original author is David Schalig mrhil.nosp@m.l@us.nosp@m.ers.s.nosp@m.ourc.nosp@m.eforg.nosp@m.e.ne.nosp@m.t.
From June 2007 ~ 2023 the project was maintained by Davide Rondini cdron.nosp@m.77@u.nosp@m.sers..nosp@m.sour.nosp@m.cefor.nosp@m.ge.n.nosp@m.et.
Original Authors possibly can be contacted via the original wxMathPlot's homepage at https://sourceforge.net/projects/wxmathplot.
Current maintainers can be contacted via https://github.com/GitHubLionel/wxMathPlot
Contributors:
Jose Luis Blanco, Val Greene, Lionel Reynaud, Dave Nadler, MortenMacFly, Oskar Waldemarsson

Optional configuration window

Define the preprocessor symbol MP_ENABLE_CONFIG to have a configuration window. In this dialog box window, the user can modify most plot properties like displayed series, title, legend, scale, ...

See also
MathPlotConfigDialog

Optional namespace

Define the preprocessor symbol MP_ENABLE_NAMESPACE to place all wxMathPlot components within the namespace MathPlot.

Optional user include configuration hook

Define the preprocessor symbol MP_USER_INCLUDE to the base name of a header, without the .h suffix, to have mathplot.h include your custom header. This can be used for custom internationalization support or other project-specific integration. For example:

#define MP_USER_INCLUDE MyIncludeFile

...causes mathplot.h to include MyIncludeFile.h.