G2Plot+TS+Vite+Vue3 图表上手指南

2,221 阅读1分钟

G2Plot 是一套简单、易用、并具备一定扩展能力和组合能力的统计图表库,基于图形语法理论搭建而成,"G2Plot"中的 G2 即意指图形语法 (the Gramma of Graphics),同时也致敬了 ggplot2。

特性

  • 📦 开箱即用、默认好用的高质量统计图表
  • 🎨 提炼自企业级产品的视觉语言和设计规范
  • 📊 响应式图表:致力于解决图表在任何数据和显示尺寸下的基本可读性问题
  • 🔳 图层化设计方法:在 G2Plot 体系下,图表不仅仅只是各不相关的实例,图层概念的引入提供了多图表组合叠联动,共同讲述一个数据故事的可能性

安装

$ npm install @antv/g2plot

实际项目中使用示例

一直纠结异步请求数据不显示,研究两天各种视频,各种Issues,最后发现 xField: 'label',yField: 'value'这两个参数没改!囧~~~~~~ 

<script lang="ts" setup>
import { Column} from "@antv/g2plot";
import {onMounted, ref} from "vue";
import order from "../../../api/order";

let data = ref([])
const render = (change?: boolean) => {
  const plot = new Column('column-min', {
    data: data.value,
    xField: 'label',
    yField: 'value',
    padding: [5, -10,0, -10],
    xAxis: {
      label: null,
      line: null
    },
    yAxis: {
      label: null,
      line: null,
      grid: null
    },
    meta: {
      label: {alias: '月份'},
      value: {alias: '销售额'}
    },
  });
  plot.render()
}
const getData = async () => {
  let res:any = await order.overview({name: 'sales', action: 'year', month: 3, year: 2022})
  if(res.code === 200){
    data.value = res.data
    render()
  }
}
onMounted(() => {
  getData()
})
</script>