JSPM

@visactor/vgrammar-core

1.14.2-alpha.0
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 3724
    • Score
      100M100P100Q138803F
    • License MIT

    VGrammar is a visual grammar library

    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.

    IntroductionDemoTutorialAPIOption

    image test unit test npm Version npm Download license

    English| 简体中文

    (video)

    Introduction

    VGrammar is a visual grammar library based on visual rendering engine VRender. The core capabilities are as follows:

    1. Easy to Use by Default: VGrammar features a concise syntax, comprehensive interface, rich component library, and simplified development process.
    2. Rich in Capabilities: VGrammar provides extensive capabilities for chart definition, animation arrangement, artistic expression, and complete coverage of various needs.
    3. 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:

    1. VGrammar: The main package of VGrammar

    Usage

    Installation

    npm package

    // 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!

    License

    MIT License