Wisteria Dataviz is data visualization library based on wxWidgets. It includes features such as:
- Numerous built-in graphs (refer to the
Wisteria::Graphs
namespace for a full list) - Interface for displaying tabular data
- Built-in printing, copying, and exporting support
- Data importing (Excel, CSV, tab-delimited, or user-defined delimited files) support
- Data transformations, such as filtering, pivoting (both longer or wider), subsetting, and recoding
- Data exporting (CSV, tab-delimited, or user-defined delimited files) support
- Image support, including the ability to use images for plot and bar backgrounds, logos, and point markers
- Image effects, such as oil-painting and Sepia tone
- Effects for boxes and bars, including transparency, a watercolor look, a glassy look, stipple brushes, and color fades
- Reference lines and areas
- Pre-defined and extensible color schemes
- Multi-plot support
- Graphs can be embedded side-by-side on the same (scrollable) canvas
- Includes support for setting a common axis for all graphs across a row or down a column
See more in the features overview.
- Setup the library's settings (optionally) when your application starts
- Construct a
Wisteria::Canvas
object (which is awxScrolledWindow
-derived window), and embed it into awxFrame
orwxDialog
- Import data into a
Wisteria::Data::Dataset
(or build a dataset), specifying which columns to include and how to classify them - Construct a plot object (e.g.,
Wisteria::Graphs::LinePlot
) and pass your dataset to it - Customize the plot, as needed
- Add the plot (and its legend [if applicable]) to the canvas
Some of the graphs included are:
Bar Chart (Wisteria::Graphs::BarChart) | Line Plot (Wisteria::Graphs::LinePlot) |
---|---|
Pie Chart (Wisteria::Graphs::PieChart) | Donut Chart (Wisteria::Graphs::PieChart) |
---|---|
Table (Wisteria::Graphs::Table) |
---|
Sankey Diagram (Wisteria::Graphs::SankeyDiagram) |
---|
![]() |
Word Cloud (Wisteria::Graphs::WordCloud) |
---|
![]() |
Gantt Chart (Wisteria::Graphs::GanttChart) |
---|
![]() |
Candlestick Plot (Wisteria::Graphs::CandlestickPlot) |
---|
Histogram (Wisteria::Graphs::Histogram) | Box Plot (Wisteria::Graphs::BoxPlot) |
---|---|
Discrete Heat Map (Wisteria::Graphs::HeatMap) | Grouped Discrete Heat Map (Wisteria::Graphs::HeatMap) |
---|---|
3-Point Likert Chart (Wisteria::Graphs::LikertChart) |
---|
![]() |
Pro & Con Roadmap (Wisteria::Graphs::ProConRoadmap) |
---|
W-Curve Plot (Wisteria::Graphs::WCurvePlot) |
---|
Linear Regression Roadmap (Wisteria::Graphs::LRRoadmap) |
---|
See more in the graphs gallery.
Release information is available here.
First, download Wisteria:
git clone https://github.com/Blake-Madden/Wisteria-Dataviz.git --recurse-submodules
Get and build wxWidgets 3.2 or higher:
git clone https://github.com/wxWidgets/wxWidgets.git --recurse-submodules
Refer here for how to build wxWidgets.
Next, build Wisteria:
If using CMake GUI, open "CMakeLists.txt" and set wxWidgets_ROOT_DIR
to the
root folder of wxWidgets. Next, configure and generate a project file for your compiler.
If using Visual Studio, open the Wisteria folder to load the project.
Then go to Project -> CMake Settings for Wisteria...
. Add an entry for wxWidgets_ROOT_DIR
and specify the path to your wxWidgets folder. Save and then build the project.
Install the following from your repository manager (or build from source):
- wxWidgets 3.2
- GTK3 development files (version 3.2 or higher)
- Threading Building Blocks (libtbb) and its development files
Go into the project folder and run the following to build the library and demo:
cmake ./
cmake --build ./ -j 4
If using KDevelop or VS Code, you can also open the CMake file and build from there.
Install the following using brew (or build from source):
- wxWidgets 3.2
- Threading Building Blocks (tbb)
- OpenMP (libomp)
- Doxygen
Go into the project folder and run the following to build the library and demo:
cmake ./
cmake --build ./ -j 4
To build the API documentation, open "docs/doxygen/Doxyfile" in Doxygen and run it.
- wxWidgets 3.2 or higher
- GTK 3 (Linux)
- Threading Building Blocks: libtbb (Linux), tbb (macOS)
- A C++20 compatible compiler
- OpenMP (optional): libomp (macOS)
If using a version of CMake older than 3.24, please refer to wxWidgets's CMake overview for instructions on how to set up CMake to work with wxWidgets 3.2.