QCustomPlot is a Qt C++ widget for plotting and data visualization. It has no further dependencies and is well documented. This plotting library focuses on making good looking, publication quality 2D plots, graphs and charts, as well as offering high performance for realtime visualization applications. Have a look at the Setting Up and the Basic Plotting tutorials to get started.

QCustomPlot can export to various formats such as vectorized PDF files and rasterized images like PNG, JPG and BMP. QCustomPlot is the solution for displaying of realtime data inside the application as well as producing high quality plots for other media.

Default license GPL, feel free to use QCP in free software!
Please get in contact if you need a commercial license.

Plot Screenshots

The screenshots below show what can be achieved with QCustomPlot in only a few lines. To view the code, click on the respective image. All codes are also available in the full package which can be found in the download section. Inside the package, navigate to the project examples/plots/plot-examples.pro.

A simple decaying sine function with fill and its exponential envelope in red
A simple decaying sine function with fill and its exponential envelope in red
sinc function with data points, corresponding error bars and a 2-sigma confidence band.
sinc function with data points, corresponding error bars and a 2-sigma confidence band
A demonstration of several scatter point styles.
A demonstration of several scatter point styles
Altered pens, brushes and scatter styles to fit a darker, stylish theme.
Demonstrating QCustomPlot's versatility in styling the plot
A 2D color map with color scale
A 2D color map with color scale. Color scales can be dragged and zoomed just like axes
Pixmap scatter points and a multi-lined axis label, as well as a plot title at the top
Pixmap scatter points and a multi-lined axis label, as well as a plot title at the top
Real time generated data and automatically scaling vertical axis.
Real time generated data and time bottom axis
Multiple plot styles with different key/value axes and manual tick labeling at top axis
Multiple plot styles with different key/value axes and pi tick labeling at top axis
Logarithmic axis scaling. Note correct display of the sine function crossing zero in negative infinity
Logarithmic axis scaling. Note correct display of the sine function crossing zero in negative infinity
A demonstration of several line styles
A demonstration of several line styles
Random walks with fill and date mode for bottom axis labels.
Random walks with fill and smart date ticks on the bottom axis
Parametric curves with translucent gradient filling
Parametric curves with translucent gradient filling
Three stacked bar charts with manual x axis tick labels
Three stacked bar charts with manual x axis tick labels
Statistical 5-parameter-box-plot with outliers
Statistical 5-parameter-box-plot with outliers
The interaction example showing the selection mechanism for graphs
The interaction example showing the user selection of graphs
Using items like text labels, arrows and a bracket. This is actually animated, see examples project
Using items like text labels, arrows and a bracket. This is actually animated, see examples project
QCP supports multiple axes on one axis rect side and multiple axis rects per plot widget
QCP supports multiple axes on one axis rect side and multiple axis rects per plot widget
QCP showing financial and stock data with the typical Candlestick and OHLC charts
QCP showing financial and stock data with the typical Candlestick and OHLC charts