| Platforms | Result |
|---|---|
| Linux | |
| macOS | |
| Windows |
| Code Analyses | Result |
|---|---|
| cppcheck | |
| clang-tidy | |
| MS PREfast | |
| Quneiform |
| Documentation & Formatting | Result |
|---|---|
| Doxygen | |
| Spellcheck | |
| Profanity Check | |
| clang-format | |
| UNIX Newlines |
Wisteria Dataviz is data visualization library based on wxWidgets, with a focus on statistics and social sciences. It includes features such as:
- Numerous built-in graphs (refer to the
Wisteria::Graphsnamespace 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::Canvasobject (which is awxScrolledWindow-derived window), and embed it into awxFrameorwxDialog - 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) |
|---|
![]() |
| Waffle Chart (Wisteria::Graphs::WaffleChart) |
|---|
![]() |
| 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) |
|---|
| Win/Loss Sparkline (Wisteria::Graphs::WinLossSparkline) |
|---|
See more in the graphs gallery.
Release information is available here.
Install the following:
- Visual Studio
- Doxygen (if wanting the API documentation)
Download wxWidgets 3.3.1 or higher:
- Open Visual Studio and select Clone a Repository
- Enter https://github.com/wxWidgets/wxWidgets.git and clone it
Next, download and build Wisteria:
- Open Visual Studio and select Clone a Repository
- Enter https://github.com/Blake-Madden/Wisteria-Dataviz.git and clone it. Note that this project's folder should be at the save level as the wxWidgets folder.
- Open this project's CMake file in Visual Studio:
- Open Project > CMake Settings for Wisteria
- Set the configuration type to "Release" (or create a new release configuration)
- Save your changes
- Open Project > CMake Settings for Wisteria
- Select View > CMake Targets
- Build the demo, and wisteria, and/or doxygen-docs targets
Install the following from your repository manager (or build from source):
- GTK3 development files (version 3.3 or higher)
- OpenMP (libomp) and its development files
- Threading Building Blocks (libtbb) and its development files
- Doxygen (if wanting the API documentation)
Download wxWidgets 3.3.1 or higher at the same folder level as this project:
git clone https://github.com/wxWidgets/wxWidgets.git --recurse-submodules
Next, download Wisteria and build the library, demo, and documentation:
git clone https://github.com/Blake-Madden/Wisteria-Dataviz.git --recurse-submodules
cd Wisteria-Dataviz
cmake . -DCMAKE_BUILD_TYPE=Release
cmake --build . -j4 --config Release
If using CLion, KDevelop or VS Code, you can also open the CMake file and build from there.
Install the following:
- XCode (will include the AppleClang compiler)
- Doxygen (if wanting the API documentation)
Download wxWidgets 3.3.1 or higher at the same folder level as this project:
git clone https://github.com/wxWidgets/wxWidgets.git --recurse-submodules
Next, download Wisteria and build the library, demo, and documentation:
git clone https://github.com/Blake-Madden/Wisteria-Dataviz.git --recurse-submodules
cd Wisteria-Dataviz
cmake . -DCMAKE_BUILD_TYPE=Release
cmake --build . -j4 --config Release
To build the API documentation, open "docs/doxygen/Doxyfile" in Doxygen and run it.
- wxWidgets 3.3.1 or higher
- A C++20 compatible compiler (AppleClang on macOS)
- CMake 3.25 or higher
- Doxygen (if wanting the API documentation)
- GTK 3 (Linux)
- Threading Building Blocks: libtbb (Linux)
- OpenMP (Linux)




