返回顶部
首页 > 资讯 > 前端开发 > JavaScript >VUE引入使用G2图表的实现
  • 640
分享到

VUE引入使用G2图表的实现

2024-04-02 19:04:59 640人浏览 独家记忆
摘要

目录关于G2图表介绍 使用 模板中使用完整代码(柱状图)在补充一下世界地图关于G2图表介绍 G2 是一套基于图形语法理论的可视化底层引擎,以数据驱动,提供图形语法与交互语法,具有高

关于G2图表介绍

G2 是一套基于图形语法理论的可视化底层引擎,以数据驱动,提供图形语法与交互语法,具有高度的易用性和扩展性
使用 G2,可以无需关注图表各种繁琐的实现细节,一条语句即可使用 canvas 或 SVG 构建出各种各样的可交互的统计图表

G2图表官网地址
https://antv.gitee.io/zh

G2图标详细开发手册
Https://antv-g2.gitee.io/zh/docs/api/general/chart

使用

第一步:安装G2依赖包


npm instal @antv/g2

第二步:在绘图前需要为 G2 准备一个 DOM 容器


<div id="WEBInfo"></div>

第三步:引入


import G2 from "@antv/g2";

第四步:在mounted中定义

可先在全局定义let chart = null;


const chart = new G2.Chart({})

chart = new G2.Chart({       
        container: "webInfo",//指定图表容器       
        forceFit: true,//强制配合 
        width: 600, // 指定图表宽度       
        height: 306,//高度       
        padding: [20, 30, 30, 50],//内边距 
})

第五步:载入数据源


/马上更新图表 / 
chart.changeData(chartData) 

/仅仅是更新数据,而不需要马上更新图表/ 
chart.source(chartData) 

/需要更新图表时调用 / 
chart.repaint()

扩展清除图形语法


/清理所有/
chart.clear(); 

模板中使用完整代码(柱状图)


<template>
  <div id="c1"></div>
</template>
<script>
    export default {
        name: "spectaculars",
        data(){
            return{
                basicColumnChartProp:{
                    data:[{ genre: 'Sports', sold: 275 },
                        { genre: 'Strategy', sold: 115 },
                        { genre: 'Action', sold: 120 },
                        { genre: 'Shooter', sold: 350 },
                        { genre: 'Other', sold: 150 }],
                    container:'c1',
                    width:700,
                    height:600
                },
            }
        },
        methods:{
            test(){
                const data = this.basicColumnChartProp.data;
                const chart = new G2.Chart({
                    container: this.basicColumnChartProp.container,
                    width : this.basicColumnChartProp.width,
                    height : this.basicColumnChartProp.height
                });
                chart.source(data);
                chart.interval().position('genre*sold').color('genre')
                chart.render();
            }
        },    
        mounted() {
          this.test();
        },
    }
</script>

在补充一下世界地图

(当初项目需求找了G2的地图,感觉API文档有些东西没说明白,这里记录一下)


<template>
  <div id="c1"></div>
</template>
<script>
    const DataSet = require('@antv/data-set');
    export default {
        name: "spectaculars",
        data(){
            return{
                basicColumnChartProp:{
                    container:'c1',
                },
            }
        },
        methods:{
            test(){
              fetch('src/views/dataCenter/data/world/countries.geo.JSON')
              .then(res => res.json())
              .then(mapData => {
                const chart = new G2.Chart({
                  container:this.basicColumnChartProp.container,
                  forceFit: true,
                  height:700,
                  padding: [10,10]
                });
                chart.tooltip({
                  showTitle: false
                });
                // 同步度量
                chart.scale({
                  longitude: {
                    sync: true
                  },
                  latitude: {
                    sync: true
                  }
                });
                chart.axis(false);
                chart.legend('trend', {
                  position: 'left'
                });
 
                // 绘制世界地图背景
                const ds = new DataSet();
                const worldMap = ds.createView('back')
                  .source(mapData, {
                    type: 'GeoJSON'
                  });
                const worldMapView = chart.view();
                worldMapView.source(worldMap);
                worldMapView.tooltip(false);
                worldMapView.polyGon().position('longitude*latitude').style({
                  fill: '#fff',
                  stroke: '#ccc',
                  lineWidth: 1
                });
 
                const userData = [
                  { name: 'Russia', value: 86.8 },
                  { name: 'China', value: 106.3 },
                  { name: 'Japan', value: 94.7 },
                  { name: 'Mongolia', value: 98 },
                  { name: 'Canada', value: 98.4 },
                  { name: 'United Kingdom', value: 97.2 },
                  { name: 'United States of America', value: 98.3 },
                  { name: 'Brazil', value: 96.7 },
                  { name: 'Argentina', value: 95.8 },
                  { name: 'Algeria', value: 101.3 },
                  { name: 'France', value: 94.8 },
                  { name: 'Germany', value: 96.6 },
                  { name: 'Ukraine', value: 86.3 },
                  { name: 'Egypt', value: 102.1 },
                  { name: 'South Africa', value: 101.3 },
                  { name: 'India', value: 107.6 },
                  { name: 'Australia', value: 99.9 },
                  { name: 'Saudi Arabia', value: 130.1 },
                  { name: 'Afghanistan', value: 106.5 },
                  { name: 'Kazakhstan', value: 93.4 },
                  { name: 'Indonesia', value: 101.4 }
                ];
                const userDv = ds.createView()
                  .source(userData)
                  .transfORM({
                    geoDataView: worldMap,
                    field: 'name',
                    type: 'geo.region',
                    as: [ 'longitude', 'latitude' ]
                  })
                  .transform({
                    type: 'map',
                    callback: obj => {
                      // obj.trend = obj.value
                      obj.trend = (obj.value > 100) ? '男性更多' : '女性更多';
                      return obj;
                    }
                  });
                const userView = chart.view();
                userView.source(userDv, {
                  trend: {
                    alias: '每100位女性对应的男性数量'
                  }
                });
                userView.polygon()
                  .position('longitude*latitude')
                  .color('trend', [ '#F51D27', '#0A61D7' ])
                  .opacity('value')
                  .tooltip('name*trend')
                  .animate({
                    leave: {
                      animation: 'fadeOut'
                    }
                  });
                chart.render();
              })
            },
        },
        mounted() {
          this.test();
        },
    }
</script>
  • fetch这个地方官网引入的是文件目录,不是具体的json文件,使用的时候找不到文件
  • fetch引入的json这里是本地的,其次G2官网提供的远程githup地址获取不到这个json文件
  • fetch引入json文件的路径,不是你当前文件到该json的路径,而是index.html到该json文件的地址

到此这篇关于Vue引入使用G2图表的实现的文章就介绍到这了,更多相关VUE使用G2图表内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: VUE引入使用G2图表的实现

本文链接: https://lsjlt.com/news/132861.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • VUE引入使用G2图表的实现
    目录关于G2图表介绍 使用 模板中使用完整代码(柱状图)在补充一下世界地图关于G2图表介绍 G2 是一套基于图形语法理论的可视化底层引擎,以数据驱动,提供图形语法与交互语法,具有高...
    99+
    2024-04-02
  • vue+阿里的G2图表-antv+折线图实例
    目录vue阿里的G2图表-antv+折线图实现效果实现步骤antv g2柱状图与折线图混合使用这是数据这是组件 vue阿里的G2图表-antv+折线图 之前使用的图表是ec...
    99+
    2024-04-02
  • 如何在vue中引入图表
    在vue中引入highcharts图表的方法:1.新建vue.js项目;2.使用npm安装highchars依赖包;3.使用import方法引入highcharts图表;具体步骤如下:首先,在vue-cli中创建一个vue.js项目;vue...
    99+
    2024-04-02
  • vue结合AntV G2的使用踩坑记录
    目录vue结合AntV G2使用踩坑AntV-G2语法总结目的第一步语法基础第二步设置坐标轴的外观与度量第二步创建viewvue结合AntV G2使用踩坑 官网使用import G2...
    99+
    2024-04-02
  • Vue实现自定义组件的方式引入图标
    这篇文章主要讲解了“Vue实现自定义组件的方式引入图标”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue实现自定义组件的方式引入图标”吧!前言在项目开发中,使用图标的方式有很多种,可以在i...
    99+
    2023-06-20
  • 基于Vue实现自定义组件的方式引入图标
    前言 在项目开发中,使用图标的方式有很多种,可以在iconfont上面找到合适的图标,通过http或者直接下载使用,这里我分享一种通过实现自定义组件的方式引入图标。 搭建环境 这里...
    99+
    2024-04-02
  • 基于Vue只能实现自定义组件引入图标
    这篇“基于Vue只能实现自定义组件引入图标”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基...
    99+
    2024-04-02
  • Vue使用Vue-cropper实现图片裁剪
    前言 这两天想给图片添加一个图片裁剪的功能,因为之前的图片都是直接上传的,很多图片肯定在前台显示的时候,都不能很好的达到我们想要的效果,因此就需要我们在对个别图片进行细微调整,已达到...
    99+
    2024-04-02
  • vue中引入高德地图并多点标注的实现步骤
    vue中引入高德地图并多点标记 步骤: 通过vue的方法引入地图初始化地图,设置宽和高信息窗口实例遍历生成多个标记点 首先在项目的public下的index.html中引入地图 &l...
    99+
    2024-04-02
  • vue引入iconfont图标库的优雅实战记录
    目录前言 生成SVG svg sprites简介 获取项目图标 项目设置 图标引用 组件引用 多主题支持 配置多主题样式 Icon改造 页面校验 尾言 前言 本文撰写的初衷是为了向...
    99+
    2024-04-02
  • vue动态引入图片要使用require的原因是什么
    这篇文章主要讲解了“vue动态引入图片要使用require的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue动态引入图片要使用require的原因是什么”吧!1.什么是静态资源...
    99+
    2023-07-04
  • Vue Chart.js 和 Vue 携手并进:打造引人入胜的交互式图表
    使用 Vue Chart.js 创建交互式图表 以下是使用 Vue Chart.js 创建交互式图表的步骤: 安装 Vue Chart.js npm install vue-chartjs 在 Vue.js 应用中导入 Vue Ch...
    99+
    2024-02-03
    Vue.js Chart.js 图表 JavaScript Javascript 可视化 数据可视化
  • vue使用echarts实现折线图
    本文实例为大家分享了vue使用echarts实现折线图的具体代码,供大家参考,具体内容如下 效果图: 代码: <template>             <di...
    99+
    2024-04-02
  • vue使用Highcharts实现3D饼图
    本文实例为大家分享了vue使用Highcharts实现3D饼图的具体代码,供大家参考,具体内容如下 1.安装vue-highcharts和highcharts npm install...
    99+
    2024-04-02
  • Vue+Antv F2实现混合图表
    本文实例为大家分享了Vue+Antv F2实现混合图表的具体代码,供大家参考,具体内容如下 一、npm安装 npm install @antv/f2 --save 二、在main.j...
    99+
    2024-04-02
  • Vue导入Echarts实现散点图
    目录前言散点图特点散点图实现步骤散点图常见效果气泡效果涟漪动画效果完整代码前言 本篇来学习散点图的实现 散点图特点 散点图可以帮助我们推断出不同维度数据之间的相关性, 比如:看得出身...
    99+
    2022-12-15
    Vue散点图 Vue Echarts散点图
  • Vue导入Echarts实现折线图
    目录前言折线图特点折线图实现步骤折线图常见效果标记线条控制填充风格紧挨边缘缩放-脱离0值比例堆叠图前言 本篇来学习下折线图的实现 折线图特点 折线图更多的使用来呈现数据随时间的变化趋...
    99+
    2022-12-15
    Vue Echarts实现折线图 Vue折线图 Vue Echarts
  • vue中图片引入的示例分析
    这篇文章给大家分享的是有关vue中图片引入的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。图片引入无非是路径问题,路径就会有绝对路径,和相对路径这两个说法。有一种引入方式就是直接引入绝对路径<img...
    99+
    2023-06-02
  • vue+highCharts实现可选范围的图表
    本文实例为大家分享了vue+highCharts实现可选范围的图表,供大家参考,具体内容如下 效果图: 实现方法(数据可自行修改): <div id="container" ...
    99+
    2024-04-02
  • vue引入Excel表格插件的方法
    本文实例为大家分享了vue引入Excel表格插件的具体代码,供大家参考,具体内容如下 一、安装 npm install handsontable-pro @handsontabl...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作