Skip to content

chenliangabc/Wisteria-Dataviz

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wisteria Dataviz

Linux Build & Unit Tests macOS Build & Unit Tests

cppcheck Microsoft C++ Code Analysis

doxygen i18n-check Spell Check

About

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.

General Workflow

  • 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 tickmarks, add custom labels
    • etc.
  • Add the plot (and its legend [if applicable]) to the canvas

Graph Types

Some of the graphs included are:

Basic

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)

Business

Gantt Chart (Wisteria::Graphs::GanttChart)
Candlestick Plot (Wisteria::Graphs::CandlestickPlot)

Statistical

Histogram (Wisteria::Graphs::Histogram) Box Plot (Wisteria::Graphs::BoxPlot)
Discrete Heat Map (Wisteria::Graphs::HeatMap) Grouped Discrete Heat Map (Wisteria::Graphs::HeatMap)

Survey Data

3-Point Likert Chart (Wisteria::Graphs::LikertChart)
Pro & Con Roadmap (Wisteria::Graphs::ProConRoadmap)

Social Sciences

W-Curve Plot (Wisteria::Graphs::WCurvePlot)
Linear Regression Roadmap (Wisteria::Graphs::LRRoadmap)

See more in the graphs gallery.

Release Notes

Release information is available here.

Building

First, download Wisteria:

git clone https://github.com/Blake-Madden/Wisteria-Dataviz.git --recurse-submodules

Windows

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.

Linux

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.

macOS

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

Documentation

To build the API documentation, open "docs/doxygen/Doxyfile" in Doxygen and run it.

Dependencies

  • 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.

About

Wisteria Dataviz Library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.5%
  • Other 0.5%