最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VUE引入使用G2圖表的實(shí)現(xiàn)

 更新時(shí)間:2021年08月18日 09:43:00   作者:黃勇超  
本文主要介紹了VUE引入使用G2圖表的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

關(guān)于G2圖表介紹

G2 是一套基于圖形語(yǔ)法理論的可視化底層引擎,以數(shù)據(jù)驅(qū)動(dòng),提供圖形語(yǔ)法與交互語(yǔ)法,具有高度的易用性和擴(kuò)展性
使用 G2,可以無(wú)需關(guān)注圖表各種繁瑣的實(shí)現(xiàn)細(xì)節(jié),一條語(yǔ)句即可使用 Canvas 或 SVG 構(gòu)建出各種各樣的可交互的統(tǒng)計(jì)圖表

G2圖表官網(wǎng)地址
https://antv.gitee.io/zh

G2圖標(biāo)詳細(xì)開(kāi)發(fā)手冊(cè)
https://antv-g2.gitee.io/zh/docs/api/general/chart

使用

第一步:安裝G2依賴(lài)包

npm instal @antv/g2

第二步:在繪圖前需要為 G2 準(zhǔn)備一個(gè) 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,//強(qiáng)制配合 
        width: 600, // 指定圖表寬度       
        height: 306,//高度       
        padding: [20, 30, 30, 50],//內(nèi)邊距 
})

第五步:載入數(shù)據(jù)源

/馬上更新圖表 / 
chart.changeData(chartData) 

/僅僅是更新數(shù)據(jù),而不需要馬上更新圖表/ 
chart.source(chartData) 

/需要更新圖表時(shí)調(diào)用 / 
chart.repaint()

擴(kuò)展清除圖形語(yǔ)法

/清理所有/
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>

在補(bǔ)充一下世界地圖

(當(dāng)初項(xiàng)目需求找了G2的地圖,感覺(jué)API文檔有些東西沒(méi)說(shuō)明白,這里記錄一下)

<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位女性對(duì)應(yīng)的男性數(shù)量'
                  }
                });
                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這個(gè)地方官網(wǎng)引入的是文件目錄,不是具體的json文件,使用的時(shí)候找不到文件
  • fetch引入的json這里是本地的,其次G2官網(wǎng)提供的遠(yuǎn)程githup地址獲取不到這個(gè)json文件
  • fetch引入json文件的路徑,不是你當(dāng)前文件到該json的路徑,而是index.html到該json文件的地址

到此這篇關(guān)于VUE引入使用G2圖表的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)VUE使用G2圖表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue開(kāi)發(fā)移動(dòng)端使用better-scroll時(shí)click事件失效的解決方案

    vue開(kāi)發(fā)移動(dòng)端使用better-scroll時(shí)click事件失效的解決方案

    這篇文章主要介紹了vue開(kāi)發(fā)移動(dòng)端使用better-scroll時(shí)click事件失效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • vue中動(dòng)態(tài)設(shè)置meta標(biāo)簽和title標(biāo)簽的方法

    vue中動(dòng)態(tài)設(shè)置meta標(biāo)簽和title標(biāo)簽的方法

    這篇文章主要介紹了vue中動(dòng)態(tài)設(shè)置meta標(biāo)簽和title標(biāo)簽的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 使用vue-cli創(chuàng)建vue項(xiàng)目介紹

    使用vue-cli創(chuàng)建vue項(xiàng)目介紹

    這篇文章介紹了使用vue-cli創(chuàng)建vue項(xiàng)目的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • vue 設(shè)置 input 為不可以編輯的實(shí)現(xiàn)方法

    vue 設(shè)置 input 為不可以編輯的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇vue 設(shè)置 input 為不可以編輯的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • 解讀vue分頁(yè)面打包方式

    解讀vue分頁(yè)面打包方式

    這篇文章主要介紹了解讀vue分頁(yè)面打包方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue彈窗嵌入其它vue頁(yè)面的操作代碼

    vue彈窗嵌入其它vue頁(yè)面的操作代碼

    這篇文章主要介紹了vue彈窗如何嵌入其它vue頁(yè)面,實(shí)現(xiàn)方式是將其他頁(yè)面作為組件傳入,在父頁(yè)面將該組件引入到彈框內(nèi),實(shí)例代碼簡(jiǎn)單易懂需要的朋友可以參考下
    2022-11-11
  • vuex中使用對(duì)象展開(kāi)運(yùn)算符的示例

    vuex中使用對(duì)象展開(kāi)運(yùn)算符的示例

    本篇文章主要介紹了vuex中使用對(duì)象展開(kāi)運(yùn)算符的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • vue中then后的返回值解析

    vue中then后的返回值解析

    這篇文章主要介紹了vue中then后的返回值解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue3+Vite中不支持require的方式引入本地圖片的解決方案

    Vue3+Vite中不支持require的方式引入本地圖片的解決方案

    這篇文章主要介紹了Vue3+Vite中不支持require的方式引入本地圖片的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • element?el-select下拉框選擇失效解決辦法

    element?el-select下拉框選擇失效解決辦法

    el-select即選擇器用于從若干個(gè)候選項(xiàng)中選擇其中一個(gè)(或者多個(gè)),在傳統(tǒng)網(wǎng)頁(yè)開(kāi)發(fā)中選擇器經(jīng)常被稱(chēng)作下拉框、下拉列表是最常用的表單元素之一,這篇文章主要給大家介紹了關(guān)于element?el-select下拉框選擇失效解決辦法,需要的朋友可以參考下
    2023-08-08

最新評(píng)論

买车| 南开区| 肇庆市| 合阳县| 青冈县| 沈阳市| 利辛县| 赫章县| 南丹县| 乐业县| 渭源县| 谷城县| 茌平县| 登封市| 萝北县| 宜都市| 内江市| 蒲城县| 砀山县| 余干县| 莱芜市| 小金县| 昌都县| 安国市| 陇南市| 永福县| 钦州市| 保山市| 乐清市| 介休市| 高阳县| 恩施市| 中牟县| 万年县| 青州市| 平顶山市| 左权县| 遂平县| 凤凰县| 左贡县| 宁明县|