30 open-source projects similar to plotters-rs/plotters, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Plotters alternative.
This C++ data visualization library is a scientific plotting framework used to create 2D and 3D charts, network graphs, and geographic maps. It operates as a multi-backend graphics library, decoupling high-level plotting logic from low-level rendering engines to support various output backends. The project distinguishes itself with a dual-interface API, providing both a global functional interface for rapid prototyping and an object-oriented interface for precise control. It features a component-based layout engine for managing tiled grids and subplots, alongside a layered plot state that all
bqplot is an interactive data visualization library for Jupyter notebooks. It implements a grammar of graphics model, allowing users to build complex 2D charts by combining marks, scales, and axes. The library distinguishes itself with specialized toolkits for financial charting, such as OHLC candlesticks and time-series analysis, and geographic data visualization, including choropleths and custom map projections for TopoJSON and GeoJSON data. It enables deep interaction through tools like lasso selection, rectangular brushing, and the ability to manually manipulate plot points or line data.
ScrollableGraphView is a Swift data visualization library and iOS plotting framework used to render discrete numerical datasets as interactive graphs. It provides a scrollable user interface component that visualizes data points using a coordinate system with configurable layouts and styling. The framework is characterized by its adaptive graph scaling, which automatically adjusts the vertical axis to fit the visible data points as the user scrolls. It supports real-time data rendering, allowing graph views to update instantly as underlying datasets change through animated transitions. The l
ScottPlot is a cross-platform, high-performance charting library for .NET that renders interactive plots across desktop and web GUI frameworks including Windows Forms, WPF, MAUI, Avalonia, Blazor, and WinUI. It provides an optimized rendering engine capable of displaying millions of data points with interactive pan, zoom, and live data streaming, while also supporting image export to formats like PNG and SVG for file output, cloud applications, and notebooks. The library distinguishes itself through a comprehensive set of chart types including scatter, line, bar, pie, heatmap, financial, rada
Makie.jl is a high-performance Julia data visualization library and hardware-accelerated plotting engine used to create interactive 2D and 3D visualizations. It functions as a reactive visualization framework where plots update automatically via observables and compute graphs, and as a vector graphics generator for high-resolution academic output. The system is distinguished by its backend-agnostic rendering pipeline, which supports OpenGL, WebGL, and ray-traced scenes. It employs a grammar-of-graphics approach to map variables to aesthetic attributes and utilizes a hierarchical scene graph t
bqplot is an interactive data visualization library for IPython and Jupyter notebooks that utilizes a grammar of graphics. It functions as a tool for creating 2D charts and maps with real-time updates and bidirectional communication between the kernel and frontend. The library is distinguished by its ability to act as a geographic data visualization tool, rendering choropleth maps and spatial data via GeoJSON and custom projections. It also serves as a financial charting tool for producing OHLC and candle bar charts, and as an interactive dashboard framework for combining plotting widgets wit
Vega-Lite is a high-level declarative language for specifying interactive, multi-view visualizations. It compiles a concise JSON specification into a full Vega visualization, automatically inferring scales, axes, and legends from encoding declarations. The grammar-of-graphics encoding maps data fields to visual channels such as position, color, size, and shape, while a multi-view composition grammar enables layered, faceted, concatenated, and repeated layouts. Reactive parameter binding links named parameters to input widgets, selections, and expressions for dynamic updates. The project suppo
Live-Charts is a .NET data visualization library providing a collection of interactive charts, maps, and gauges. It functions as a real-time charting engine and multi-format graphics library designed to render complex data sets within .NET applications. The library features tools for creating interactive data dashboards capable of exploring large datasets. This is supported by a system for zooming, panning, and utilizing multiple coordinate axes to navigate hundreds of thousands of data points. The visualization engine supports a variety of formats including bars, lines, heat maps, and geogr
Sokol is a C hardware abstraction layer and cross-platform graphics library designed for managing windowing, input, and audio across different operating systems. It functions as a GPU resource manager and multimedia application framework, providing a unified API for rendering 2D and 3D graphics across WebGL, Metal, Direct3D, and OpenGL. The project is distinguished by its single-header implementation, which simplifies integration and portability. It utilizes a stateless render pass definition and a one-update-per-frame model to synchronize CPU data to GPU memory and manage resource lifecycles
VulkanTutorial is a comprehensive educational guide and instructional resource for implementing low-level rendering and compute pipelines using the Vulkan API. It serves as a GPU programming course and a step-by-step guide for building high-performance graphics applications from scratch. The project provides detailed instruction on the full graphics pipeline, including the compilation of shaders to SPIR-V bytecode, the configuration of rasterization states, and the implementation of 3D graphics pipelines. It also covers general-purpose GPU compute programming, focusing on the execution of par
Tinyrenderer is a C++ library designed as an educational tool for building a 3D graphics pipeline from scratch. It provides a software-defined rendering environment that executes all geometric transformations and rasterization tasks on the central processor, intentionally avoiding reliance on external hardware acceleration or graphics libraries. The project serves as a pedagogical resource for understanding the fundamental mathematical principles of computer graphics. It enables users to implement custom shader pipelines and core rendering techniques, such as barycentric coordinate calculatio
webgl-fundamentals is a comprehensive educational resource and graphics tutorial for learning hardware-accelerated 2D and 3D rendering using the WebGL API. It serves as a structured 3D graphics curriculum and GPU programming reference, guiding users through the graphics pipeline from basic geometry to advanced rendering techniques. The project provides detailed guides on GLSL shader development, including the creation of vertex and fragment shaders. It specifically focuses on the implementation of real-time lighting models—such as directional, point, and spot lighting—and the application of s
Perspective is a columnar data analytics engine and high-performance visualization component powered by WebAssembly. It provides a system for analyzing and visualizing large or streaming datasets through interactive data grids and charts, utilizing a compiled binary to achieve near-native performance within the browser. The project distinguishes itself through a WebSocket-based data streaming interface and deep Apache Arrow integration, which minimize memory overhead when synchronizing tables between servers and clients. It acts as a remote query proxy capable of translating visualization con
This project is a machine learning educational curriculum and learning platform delivered through interactive Jupyter Notebooks. It serves as a comprehensive guide for mastering the Python data science toolkit, providing structured tutorials for numerical computing, tabular data manipulation, and statistical visualization. The curriculum includes specific implementation guides for Scikit-Learn and a practical course on TensorFlow for constructing, training, and deploying neural networks and computer vision models. It covers the end-to-end process of building predictive models, from initial pr
tui.chart is a JavaScript data visualization library and multi-type charting engine used to render interactive statistical charts. It functions as a responsive charting framework and real-time data visualizer, utilizing HTML5 Canvas for high-performance rendering of diverse datasets. The library provides a wide array of visual formats, including linear, circular, grid-based, hierarchical, and statistical chart types. This covers everything from standard bar, line, and pie charts to more specialized visualizations such as radar charts, treemaps, bubble charts, and box plots. The engine includ
XCharts is a high-performance data visualization library and charting plugin designed for the Unity game engine. It functions as a real-time data visualizer for rendering interactive 2D and 3D charts and graphs, providing a set of data-driven interface elements such as tables, legends, and tooltips. The library distinguishes itself through its ability to render high-volume datasets using sampling techniques to maintain fluid frame rates. It utilizes procedural mesh generation to create graphics without external textures and features a dedicated drawing interface that allows for custom renderi
DearPyGui is a GPU-accelerated, immediate-mode graphical user interface framework for Python. It provides a high-performance toolkit for building interactive desktop applications by leveraging native hardware-accelerated rendering backends across multiple operating systems. By utilizing an immediate-mode execution model, the library offers direct control over the rendering loop and element state, enabling the creation of responsive, dynamic interfaces. The framework distinguishes itself through its ability to handle complex, high-frequency visual updates, making it suitable for real-time data
Hilo is an HTML5 game engine for building 2D games that run across browsers and devices. It renders graphics through Canvas, DOM, or WebGL backends, automatically selecting the best option for the target environment. The engine provides a complete game development solution with sprite, skeletal, and particle animation, along with a texture atlas system for efficient image loading and rendering. The framework distinguishes itself through its integration of the DragonBones skeletal animation engine, which drives bone-based character movement without frame-by-frame sprites, and its Chipmunk phys
This project is an immediate-mode graphical user interface library designed for rapid development of tools and debugging interfaces. By generating UI geometry every frame through procedural code, it eliminates the need for persistent state synchronization between application data and the interface. It is primarily intended for integration into existing rendering pipelines, where it produces raw vertex buffers and draw commands that are agnostic to the underlying graphics API. The library distinguishes itself through a highly decoupled architecture that supports complex, dockable, and multi-vi
This project is an educational platform and technical reference for learning real-time graphics programming through the development of custom shaders. It provides a comprehensive guide to the programmable graphics pipeline, offering a collection of tutorials and interactive examples that demonstrate how to manipulate coordinate spaces, manage buffer data, and implement complex rendering techniques in 3D environments. The repository distinguishes itself as a versatile toolkit for both photorealistic and non-photorealistic rendering. It includes modular implementations for stylized aesthetics s
roughViz is a JavaScript data visualization library used to create charts with a hand-drawn, sketchy aesthetic. It functions as an SVG charting framework that renders visualizations in the browser, prioritizing the communication of general trends and patterns over absolute precision. The library provides a collection of tools to generate several chart types, including bar, line, pie, donut, and scatter plots, as well as stacked bar charts. These visualizations are produced using a non-linear drawing style to present technical information in an informal, organic appearance.
BizCharts is a React charting library that wraps the G2 grammar of graphics, providing declarative React components for building interactive data visualizations. It bridges G2's imperative charting API with React's declarative component model, enabling chart creation through nested component composition without writing imperative code. The library distinguishes itself by mapping G2's grammar of graphics primitives directly to React component types, allowing chart series like line, bar, and scatter to be expressed as interchangeable React components. It synchronizes G2 chart instance creation,
matplotlib-cpp is a header-only C++ library and wrapper that enables the creation of 2D and 3D visualizations by calling Matplotlib functions directly from C++ code. It serves as a plotting interface for generating line plots, bar graphs, and surface charts using a Python-based backend. The library is designed as a lightweight integration that provides plotting capabilities without requiring a complex build process or compiled binaries. It covers a range of visualization capabilities, including multi-dimensional data rendering, vector field plotting, and the arrangement of multiple subplots.
ChartView is a SwiftUI-native charting library that provides bar, line, pie, and ring chart components within a unified grid-based layout system. The library renders charts by composing SwiftUI views declaratively from data models, letting the framework handle layout and updates without intermediate drawing layers. The library supports multiple chart types that share a common grid layout, enabling composable data visualizations with synchronized axes and backgrounds. Bar charts display data as vertical bars, line charts plot connected data points with gradient fills and optional markers, pie
dc.js is a multi-dimensional analysis tool and visualization framework used to build interactive data dashboards. It functions as a charting library that renders diverse SVG visualizations powered by D3 and integrates natively with Crossfilter to enable coordinated filtering across large datasets. The project is distinguished by its linked-view coordination, where selecting a data range or category in one chart simultaneously updates all other connected views. This allows for dynamic data exploration through dimensional chart linking and coordinated brushing, transforming raw datasets into na
JBChartView is an iOS charting library and data visualization framework used to render interactive line and bar graphs. It provides reusable user interface components for displaying numerical data series through smooth line curves and grouped or horizontal bar charts. The framework is distinguished by its ability to morph bars and lines between different data states, creating visual transitions that represent changes in underlying data models. It also includes interaction handling that detects user selections on specific data points and returns the associated model instances. The library cov
nalgebra is a linear algebra library for Rust that provides matrix and vector operations with support for both compile-time and runtime dimensions. It functions as a numerical analysis library and a sparse matrix library, offering a mathematical framework capable of running in embedded environments and WebAssembly without requiring the Rust standard library. The project distinguishes itself as a geometric transformation library, utilizing homogeneous coordinates, quaternions, and isometries to handle 3D rotations, translations, and projections. It implements a variety of matrix decompositions
WilliamChart is an Android data visualization library and toolkit used to render interactive charts and graphs within Android applications. It functions as a UI component library for integrating data-driven dashboards and metrics into Android layouts. The library includes a specialized component for representing proportional categorical data as donut charts, which are circular charts with hollow centers. It provides a drawing engine that uses low-level APIs to map numerical data to pixel coordinates on the screen.
VexFlow is a music notation rendering library and score generator written in TypeScript. It programmatically draws musical scores, staves, and notes for display in web browsers and Node.js environments using SVG or HTML Canvas. The library provides a specialized engine for rendering guitar tablature, including the ability to draw tab staves and fret-based modifiers such as bends and vibrato. It allows for the generation of notation through both a high-level API using shorthand strings and a low-level API for granular control over visual elements. Its capabilities cover the programmatic compo