
| 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::Graphs namespace for a full list)
- Interface for displaying tabular data
- Built-in printing, copying, and exporting support
- Data importing (Excel, OpenDocument Spreadsheet, 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 a wxScrolledWindow-derived window), and embed it into
a wxFrame or wxDialog
- 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
- Change the colors and styles of the bars, lines, etc.
- Change the plot background color, or use an image as the background
- Add titles and captions
- Adjust the axes, add tick marks, add custom labels
- etc.
- 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) |
 |
 |
| Scatter Plot (Wisteria::Graphs::ScatterPlot) |
Bubble Plot (Wisteria::Graphs::BubblePlot) |
 |
 |
| Chernoff Faces (Female) (Wisteria::Graphs::ChernoffFacesPlot) |
Chernoff Faces (Male) (Wisteria::Graphs::ChernoffFacesPlot) |
 |
 |
Fully customizable with options for skin tone, hair color, and hair style!
| Stem & Leaf Plot (Wisteria::Graphs::StemAndLeafPlot) |
Stem & Leaf Plot (Back-to-back) (Wisteria::Graphs::StemAndLeafPlot) |
 |
 |
| 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.3 or higher:
- Open Visual Studio and select Clone a Repository
Next, download and build Wisteria:
- Open Visual Studio and select Clone a Repository
- 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
- 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)
- WebKitGTK development files (libwebkit2gtk-4.1-dev or webkit2gtk3-devel)
- OpenMP (libomp) and its development files
- Threading Building Blocks (libtbb) and its development files
- Doxygen (if wanting the API documentation)
Download wxWidgets 3.3.3 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 -S . -B ./build -DCMAKE_BUILD_TYPE=Release
cmake --build ./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.3 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 -S . -B ./build -DCMAKE_BUILD_TYPE=Release
cmake --build ./build -j4 --config Release
To build the API documentation, open "docs/doxygen/Doxyfile" in Doxygen and run it.
- wxWidgets 3.3.3 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)