返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue+阿里的G2图表-antv+折线图实例
  • 357
分享到

vue+阿里的G2图表-antv+折线图实例

2024-04-02 19:04:59 357人浏览 泡泡鱼
摘要

目录Vue阿里的G2图表-antv+折线图实现效果实现步骤antv g2柱状图与折线图混合使用这是数据这是组件 vue阿里的G2图表-antv+折线图 之前使用的图表是ec

vue阿里的G2图表-antv+折线图

之前使用的图表是echarts+highcharts两个常用图表的,现在的话因为项目需要和别的原因也接触使用了阿里的g2图表,感觉效果还是挺好的,在这里分享下

官网入口

实现效果

实现步骤

第一:安装插件

npm install @antv/g2 --save

第二:lineCharts.vue,注意,图表这类型的数据必须mouned赋值一次,watch监听到数据改变在赋值一次,因为这里绑定的数据传过来后并不会同时加载图表

<template>
  <div class="GCharts" :id="id"></div>
</template>
<script>
import G2 from '@antv/g2'
export default {
  data () {
    return {
      chart: null
    }
  },
  props: {
    charData: {
      type: Array,
      default: function () {
        return {
          data: []
        }
      }
    },
    id: String
  },
  // 如果使用serverData传过来的静态数据 请使用mounted()方法 并注释掉watch
  mounted () {
    this.drawChart()
  },
  // 监听api接口传过来的数据 使用watch
  // watch: {
      // charData: function (val, oldVal) {    // 监听charData,当发生变化时,触发这个回调函数绘制图表
      // console.log('new: %s, old: %s', val, oldVal);
      // this.drawChart(val);
    // }
  methods: {
    drawChart() {
      // 2019.03.30 更新 destory方法已被废弃
      // this.chart && this.chart.destory()
      this.chart = new G2.Chart({
        container: this.id,
        width: 1550,
        height: 425
      })
      this.chart.source(this.charData)
      this.chart.scale('value', {
        min: 0
      })
      this.chart.scale('year', {
        range: [0, 1]
      })
      this.chart.tooltip({
        crosshairs: {
          type: 'line'
        }
      })
      this.chart.line().position('year*value')
      this.chart.point().position('year*value').size(4).shape('circle').style({
        stroke: '#fff',
        lineWidth: 1
      })
      this.chart.render()
    }
  }
}
</script>
<style lang='less' scope>
  .gcharts{
    width:100%;
    height:100%;
  }
</style>

第三:调用部分

<lineCharts  :charData="lineData" :id="'chart1'"></lineCharts>
import lineCharts from '@/components/gcharts/lineCharts'//g2绘图
components: {
    lineCharts,
  },
 
 
data () {
    return {
        lineData:[
                {year: '10/20',
                  value: 30
                }, {
                  year: '10/21',
                  value: 40
                }, {
                  year: '10/22',
                  value: 30.5
                }, {
                  year: '10/23',
                  value: 50
                }, {
                  year: '10/24',
                  value: 40.9
                }, {
                  year: '10/25',
                  value: 60
                }, {
                  year: '10/26',
                  value: 70
                }, {
                  year: '10/27',
                  value: 90
                }, {
                  year: '10/28',
                  value: 63
                }]
      
 
}}

antv g2柱状图与折线图混合使用

这是数据

data: [
 { time: '9:00-10:00', value: 30 , type: '曝光量', rate: 100 },
   { time: '10:00-11:00', value: 90, type: '曝光量', rate: 200 },
   { time: '11:00-12:00', value: 50, type: '点击量', rate: 300 },
   { time: '12:00-13:00', value: 30, type: '点击量', rate: 400 },
   { time: '13:00-14:00', value: 70, type: '点击量', rate: 500 }
 ],

这是组件 

<template>
  <div class="page">
    <div :id="id"></div>
  </div>
</template>
<script type="text/ecmascript-6">
import { Chart } from '@antv/g2';
export default {
  name: 'Name', // Pascal命名
  components: {},
  props: {
    id: {
      type: String,
      default: 'chart'
    },
    height: {
      type: Number,
      default: 500
    },
    chartWidth: {
      type: Number,
    },
    chartData: {
      type: Array,
      default: () => {}
    },
  },
  data() {
    return {};
  },
  computed: {},
  watch: {},
  filters: {},
  beforeCreate() {},
  created() {},
  mounted() {
    this.initPage();
  },
  methods: {
    initPage() {},
    drawChart() {
      const _this = this;
      const chart = new Chart({
        container: _this.id,
        autoFit: true,
        height: _this.height,
        width: _this.chartWidth
      });
      chart.data(_this.chartData);
      chart.scale({
        value: {
          alias: '销售额(万)',
          nice: true,
        },
        rate: {
          alias: '李大玄(百)',
          nice: true,
        },
      });
      chart.axis('rate', {
        title: {
          top: '0',
          style: {
            fill: 'green',
          },
        },
      });
      chart.axis('value', {
        title: {
          top: '0',
          style: {
            fill: 'green',
          },
        },
      });
      
      chart.tooltip({
        showCrosshairs: true, // 展示 Tooltip 辅助线
        showMarkers: false,
        shared: true,
      });
      chart.interaction('element-active');
      chart.legend({
        position: 'top',
        items: [
          { name: '曝光量', value: '曝光量', marker: { symbol: 'square', style: { fill: '#1890FF', r: 5 } } },
          { name: '点击量', value: '点击量', marker: { symbol: 'square', style: { fill: '#8c8c8c', r: 5 } } },
        ],
      });
      
      chart
        .interval()
        .adjust('stack')
        .color('type', ['red', 'pink'])
        .position('time*value')
        .style('time', val => {
          if (val === '13:00-14:00') {
            return {
              fillOpacity: 0.4,
              lineWidth: 1,
              stroke: '#636363',
              lineDash: [3, 2]
            };
          }
          return {
            fillOpacity: 1,
            lineWidth: 0,
            stroke: '#636363',
            lineDash: [100, 0.5]
          };
        });
      chart.line().position('time*rate').label('rate');
      chart.point().position('time*rate');
      // chart.interval().position('genre*sold');
      // chart.intervalDodge().position('date*value').color('type');
      chart.render();
    }
  },
};
</script>
<style lang="sCSS" scoped>
</style>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: vue+阿里的G2图表-antv+折线图实例

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

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

猜你喜欢
  • vue+阿里的G2图表-antv+折线图实例
    目录vue阿里的G2图表-antv+折线图实现效果实现步骤antv g2柱状图与折线图混合使用这是数据这是组件 vue阿里的G2图表-antv+折线图 之前使用的图表是ec...
    99+
    2024-04-02
  • vue+antv怎么实现折线图
    本文小编为大家详细介绍“vue+antv怎么实现折线图”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue+antv怎么实现折线图”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。vue阿里的G2图表-antv+折...
    99+
    2023-06-30
  • VUE引入使用G2图表的实现
    目录关于G2图表介绍 使用 模板中使用完整代码(柱状图)在补充一下世界地图关于G2图表介绍 G2 是一套基于图形语法理论的可视化底层引擎,以数据驱动,提供图形语法与交互语法,具有高...
    99+
    2024-04-02
  • Vue+Antv F2实现混合图表
    本文实例为大家分享了Vue+Antv F2实现混合图表的具体代码,供大家参考,具体内容如下 一、npm安装 npm install @antv/f2 --save 二、在main.j...
    99+
    2024-04-02
  • vue+antv实现雷达图的示例代码
    一、下载依赖 npm install @antv/data-set npm install @antv/g2 二、代码实现 <template> <di...
    99+
    2024-04-02
  • vue使用echarts实现折线图
    本文实例为大家分享了vue使用echarts实现折线图的具体代码,供大家参考,具体内容如下 效果图: 代码: <template>             <di...
    99+
    2024-04-02
  • vue+echarts实现多条折线图
    本文实例为大家分享了vue+echarts实现多条折线图的具体代码,供大家参考,具体内容如下 数据未使用json格式,直接写在页面 大致效果 页面代码: <template&...
    99+
    2024-04-02
  • Vue+Echarts实现简单折线图
    本文实例为大家分享了Vue+Echarts实现简单折线图的具体代码,供大家参考,具体内容如下 Vue+Echarts实现一个折线图,打开vue的项目: 1、在项目里面安装echart...
    99+
    2024-04-02
  • Vue+Echarts实现柱状折线图
    本文实例为大家分享了Vue+Echarts实现柱状折线图的具体代码,供大家参考,具体内容如下 vue处理json数据渲染柱状折线图 HTML: <div id="lineCha...
    99+
    2024-04-02
  • vue+echart实现圆滑折线图
    本文实例为大家分享了vue+echart实现圆滑折线图的具体代码,供大家参考,具体内容如下 效果图: 安装依赖: npm install echarts --save     im...
    99+
    2024-04-02
  • Vue导入Echarts实现折线图
    目录前言折线图特点折线图实现步骤折线图常见效果标记线条控制填充风格紧挨边缘缩放-脱离0值比例堆叠图前言 本篇来学习下折线图的实现 折线图特点 折线图更多的使用来呈现数据随时间的变化趋...
    99+
    2022-12-15
    Vue Echarts实现折线图 Vue折线图 Vue Echarts
  • vue使用ECharts实现折线图和饼图
    在开发后台管理项目时,需要统计后台用户数据,以折线图和饼图的形式显示,这边采用apache-echarts来实现需求。 1.安装echarts和引入 npm install ec...
    99+
    2024-04-02
  • Qt实现简单折线图表
    本文实例为大家分享了Qt实现简单折线图表的具体代码,供大家参考,具体内容如下 main.cpp #include <QApplication> #include <...
    99+
    2024-04-02
  • Android画图实现MPAndroidchart折线图示例详解
    目录效果图依赖activity.xmlMainActivityMyMarkerView 自定义classmaekertextview .xml常用属性效果图 用的是3.1.0的依赖...
    99+
    2024-04-02
  • vue+echarts实带渐变效果的折线图
    本文实例为大家分享了vue+echarts实带渐变效果折线图的具体代码,供大家参考,具体内容如下 1、安装echarts npm install echarts --save 2、...
    99+
    2024-04-02
  • vue+echarts如何实现多条折线图
    小编给大家分享一下vue+echarts如何实现多条折线图,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下数据未使用json格式,直接写在页面大致效果页面代码:<template> &nbs...
    99+
    2023-06-29
  • vue怎么使用echarts实现折线图
    这篇文章主要讲解了“vue怎么使用echarts实现折线图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue怎么使用echarts实现折线图”吧!效果图:代码:<template&g...
    99+
    2023-06-29
  • vue+echart怎么实现圆滑折线图
    这篇文章主要介绍了vue+echart怎么实现圆滑折线图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue+echart怎么实现圆滑折线图文章都会有所收获,下面我们一起来看看吧。效果图:安装依赖:npm&nb...
    99+
    2023-06-29
  • Vue+Echarts实现绘制动态折线图
    目录1 引入Echarts1.1 安装1.2 引入1.3 基本使用2 动态折线图2.1 基本折线图2.2 动态折线图补充1 引入Echarts 1.1 安装 使用如下命令通过 npm...
    99+
    2023-03-19
    Vue Echarts绘制动态折线图 Vue Echarts绘制折线图 Vue Echarts 折线图 Vue Echarts
  • Vue导入Echarts实现折线散点图
    本文实例为大家分享了Vue导入Echarts实现折线散点图的具体代码,供大家参考,具体内容如下 效果图: 一、vue-cli中导入echarts 通过命令:npm install ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作