Wisteria Dataviz contains features such as:
- Numerous built-in graphs (refer to the
Wisteria::Graphs
namespace for a full list) - Interface for displaying tabular data, including support for aggregate columns/rows, cell highlighting, outlier detection, and annotations
- Built-in printing support
- Built-in copy support
- Exporting (SVG, PNG, JPEG, GIF, BMP, TGA, and TIFF are supported)
- Mouse- and keyboard-enabled zooming
- 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
- A dataset interface, which allows for easily connecting data to most graphs
- Includes support for continuous, categorical, date/time, and ID columns
- Graphs are designed to handle missing data
- Uses high-quality
wxGraphicsContext
for rendering (also uses Direct2D on Windows, if available) - Image support, including the ability to use images for plot and bar backgrounds, logos, and point markers
- Image effects, such as:
- Applying an oil-painting look
- Applying a Sepia tone
- Applying a frosted-glass look
- Creating a silhouette from an image
- Stitching images together (either vertically or horizontally)
- Effects for boxes and bars, including transparency, a watercolor look, a glassy look, stipple brushes, and color fades
- HiDPI display support (Windows)
- Customizable point markers and line styles
- Pre-defined and extensible shape schemes
- Customizable axes
- Ranges can be adjusted
- Supports date ranges
- Supports logarithmic scales
- Labels can be stacked, hidden, replaced with custom text, etc.
- Header and footers can be added
- Tickmarks can be customized
- Axis lines can be drawn as a regular line or an arrow
- Custom axes can be added onto the plot area (inside of the main axes)
- Reference lines
- Reference areas (e.g., recession areas on a financial chart)
- Legends with shape, image, and color scale support
- Extensive list of pre-built colors that can be referenced via an enumeration (
Wisteria::Colors::Color
) - A color brewing interface, which is helpful for:
- Building color scales
- Shading or tinting colors
- Selecting black or white (e.g., for a font color), depending on which better contrasts against the background color
- 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
- The size proportions of the rows and columns within the canvas can be customized
- Annotations support; story-telling notes can be added to a plot with an arrow pointing to specific data points
- Text boxes that can be drawn vertically or horizontally
- Selectable objects; for example, selecting a bar on a bar chart can show a custom label
- i18n support
- Fully Unicode
- Locale-sensitive number formatting (based on
wxUILocale
's settings) - All UI-facing text is available for translation (via the
gettext
library)
- An extensible framework for designing custom graphs
- New graph types can be designed from the ground up or be derived from existing graph types (e.g., BarChart)
- Uses an object-based API for positioning points, text boxes, polygons, lines, and images
- Supports custom axes
- Draw bounding boxes and extended information in debug mode
- Profiling macros (e.g.,
PROFILE()
) to help with reviewing performance - i18n functions to help prevent accidental translations (e.g.,
DONTTRANSLATE()
and_DT()
) LogFile
class for routing logging information to a formatted file