(video)
Introduction
VGrammar is a visual grammar library based on visual rendering engine VRender. The core capabilities are as follows:
- Easy to Use by Default: VGrammar features a concise syntax, comprehensive interface, rich component library, and simplified development process.
- Rich in Capabilities: VGrammar provides extensive capabilities for chart definition, animation arrangement, artistic expression, and complete coverage of various needs.
- Flexible and Extensible: VGrammar offers flexible extension options, including custom rendering of graphical elements, data mapping, automatic layout, and effortless expansion possibilities.
Repo Intro
This repository includes the following packages:
- VGrammar: The main package of VGrammar
Usage
Installation
// npm npm install @visactor/vgrammar // yarn yarn add @visactor/vgrammar
Quick Start
import { View } from '@visactor/vgrammar'; const spec = { data: [ { id: 'table', values: [ { value: 3676, name: ' ~ 29' }, { value: 3872, name: '30 ~ 39' }, { value: 1668, name: '40 ~ 49' }, { value: 610, name: '50 ~' } ] }, { id: 'pie', source: 'table', transform: [ { type: 'pie', field: 'value', asStartAngle: 'startAngle', asEndAngle: 'endAngle' } ] } ], scales: [ { id: 'colorScale', type: 'ordinal', domain: { data: 'table', field: 'name' }, range: [ '#6690F2', '#70D6A3', '#B4E6E2', '#63B5FC', '#FF8F62', '#FFDC83', '#BCC5FD', '#A29BFE', '#63C4C7', '#F68484' ] } ], marks: [ { type: 'arc', from: { data: 'pie' }, dependency: ['viewBox', 'colorScale'], encode: { update: (datum, element, params) => { const viewBox = params.viewBox; const maxR = Math.min(viewBox.width() / 2, viewBox.height() / 2); return { x: viewBox.x1 + viewBox.width() / 2, y: viewBox.y1 + viewBox.height() / 2, startAngle: datum.startAngle, endAngle: datum.endAngle, innerRadius: 100, outerRadius: maxR, fill: params.colorScale.scale(datum.name) }; }, hover: { fill: 'red' } } } ] }; const vGrammarView = new View({ autoFit: true, container: 'chart', hover: true }); vGrammarView.parseSpec(spec); vGrammarView.runAsync();
More demos and detailed tutorials
Related Links
Ecosystem
| Project | Description |
|---|---|
| VChart | A charts lib based on VisActor/VGrammar |
| React Component Library | A React chart component library based on VisActor/VChart |
| AI-generated Components | AI-generated chart component. |
Contribution
If you would like to contribute, please read the Code of Conduct and Guide first。
Small streams converge to make great rivers and seas!