Package Exports
- @visactor/vgrammar-core
- @visactor/vgrammar-core/cjs/index.js
- @visactor/vgrammar-core/es/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@visactor/vgrammar-core) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
VGrammar
VGrammar, not only generate charts, but also provide data visualization tools.
Introduction • Demo • Tutorial • API• Option
English| 简体中文
(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/vgrammarQuick 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!