Crate dataviz

source
Expand description

§DataViz Library

DataViz is a versatile and modular Rust library for creating and managing a wide variety of charts and graphs. Designed with flexibility and extensibility in mind, DataViz provides a powerful API for data visualization, supporting different chart types, customization options, and interactive features.

§Features

  • Comprehensive Chart Types: Support for bar charts, scatter graphs, pie charts, histograms, area charts, and Cartesian graphs.
  • Data Management: Modular datasets for structured and reusable data handling.
  • Customizable Renderers: Drawers for rendering charts on pixel-based or vector-based canvases.
  • Scalable Configuration: Centralized figure configuration for appearance settings, including fonts, colors, and grid styles.
  • Interactive Capabilities: Hover-based interactivity to enhance user experience with dynamic updates and tooltips.

§Modules

DataViz is organized into a set of modules that define the core components of the library:

§figure

The main module that houses all types of charts and graphs. It includes:

  • Chart Types:
    • areachart: Create area charts for visualizing data trends.
    • cartesiangraph: Cartesian graphs for mathematical and data plotting.
    • groupbarchart: Grouped bar charts for comparative data visualization.
    • histogram: Histograms for frequency distribution analysis.
    • piechart: Pie charts for proportional data representation.
    • quadrant1graph: Graphs restricted to the first quadrant.
    • scattergraph: Scatter plots for individual data point visualization.

§Datasets

Defines reusable and modular datasets for different chart types, enabling structured data representation. Includes:

§Drawers

Provides customizable renderers for each chart type. Drawers allow charts to be rendered on various canvases, such as pixel-based or vector-based canvases. Includes:

§Utilities

Utility modules for managing chart attributes and behaviors. Includes:

  • axistype: Enum for axis types (X or Y).
  • linetype: Styles for chart lines (solid, dashed, dotted).
  • orientation: Orientation handling (horizontal or vertical).
  • scatterdottype: Dot styles for scatter plots (circle, square, triangle, etc.).

§Configuration

Centralized configuration for charts, providing a single source for appearance settings. Includes:

  • figureconfig: Control colors, fonts, grid settings, and more.

§Canvas

Abstractions for rendering surfaces, including:

  • pixelcanvas: Raster-based rendering for charts.
  • svgcanvas: Scalable vector graphics rendering for high-quality outputs.

§Display

Modules for interactivity and display management. Includes:

§Getting Started

Here’s a quick example of creating and rendering a pie chart:

use dataviz::figure::figuretypes::piechart::PieChart;
use dataviz::figure::configuration::figureconfig::FigureConfig;

let mut pie_chart = PieChart::new("Market Share", FigureConfig::default());
pie_chart.add_slice("Product A", 40.0, [255, 0, 0]);
pie_chart.add_slice("Product B", 30.0, [0, 255, 0]);
pie_chart.add_slice("Product C", 30.0, [0, 0, 255]);

// Render the pie chart
pie_chart.draw();

§License

DataViz is open-source and licensed under the MIT license. Contributions are welcome!

Modules§