vue2_echarts安装使用_入门
  6DMaaPzJglxt 2023年12月05日 28 0



初识 echarts

  • 前言
  • npm安装
  • 常见错误
  • 数据加载、更新
  • dataset管理数据
  • 结束



vue2_echarts安装使用_入门_初始化

前言

大家好,我是yma16,本文分享vue2_echarts安装使用_入门

vue2项目初始化
要初始化Vue2项目,请按照以下步骤:

  1. 确保您已经安装了Node.js和npm。
  2. 打开终端并导航到要创建项目的目录。
  3. 运行以下命令来初始化项目:
npm init

在初始化期间,您将被要求提供项目名称、版本号、描述等信息。您可以使用默认设置或根据需要进行更改。

  1. 运行以下命令来安装Vue和Vue CLI:
npm install vue vue-cli -g
  1. 使用Vue CLI创建Vue项目:
vue init webpack <project-name>

这将在当前目录下创建一个名为的新项目。

  1. 进入新创建的项目目录并安装依赖项:
cd <project-name>
npm install
  1. 运行以下命令来启动本地开发服务器:
npm run dev

npm安装

在vue的项目中使用npm安装

$ npm install echarts --save

在main.js中导入echarts

import * as echarts from 'echarts';
Vue.prototype.$echarts = echarts

vue2_echarts安装使用_入门_柱状图_02

常见错误

Initialize failed: invalid dom dom没有初始化,echart的实例执行早了,可以先初始化dom然后在函数中调用echart实例。
例:使用echart制作一个柱状图
vue声明方法

methods: {
    echartfunc: function (o) {
      // 基于准备好的dom,初始化echarts实例
      var myChart = echarts.init(document.getElementById("echart2"));
      // 绘制图表
      myChart.setOption({
        title: {
          text: "ECharts 柱状图测试",
        },
        tooltip: {},
        xAxis: {
          data: ["yma16","法外狂徒", "张三", "李四", "maletingda", "echart"],
        },
        yAxis: {},
        series: [
          {
            name: "体重",
            type: "bar",
            data: [45, 50, 48, 43, 60, 65],
          },
        ],
      });
    }
 }

vue的template模板中

<button @click="echartfunc">测试柱状图</button>
    <div
    id="echart2" style="width: 1920px; height: 600px; background-color: bisque" >
    </div>

效果

vue2_echarts安装使用_入门_初始化_03

数据加载、更新

思考:数据加载通过setOption
更新:使用setTimeOut不断循环调用echart的setOption达到循环渲染的效果。
例:柱状图添加数据
函数声明

export default {
  name: "echart01",
  data() {
    return {
      data:{
          x:["yma16","法外狂徒", "张三", "李四", "maletingda", "echart"],
          y:[45, 50, 48, 43, 60, 65]
      },
      msg: "echart 柱状图测试",
      insert_x:'',//插入横坐标 数据 使用
      insert_y:''
    };
  },
  methods: {
      insert:function(){
          this.data.x.push(this.insert_x);
          this.data.y.push(this.insert_y);
          console.log(this.data)
          setTimeout(this.update,1000);//1s刷新一次
      },
      update:function(){
          setTimeout(this.echartfunc,1000);//1s刷新一次
      },
      echartfunc: function (o) {
      // 基于准备好的dom,初始化echarts实例
      var myChart = echarts.init(document.getElementById("echart2"));
      // 绘制图表
      myChart.setOption({
        title: {
          text: "ECharts 柱状图测试",
        },
        tooltip: {},
        xAxis: {
          data: ["yma16","法外狂徒", "张三", "李四", "maletingda", "echart"],
        },
        yAxis: {},
        series: [
          {
            name: "体重",
            type: "bar",
            data: [45, 50, 48, 43, 60, 65],
          },
        ],
      });
    }
 }

效果

vue2_echarts安装使用_入门_初始化_04

dataset管理数据

dataset支持单独的数据集声明,数据被多个组件复用,利于数据的输入
对比

  • 旧版本数据声明,数据分散
option = {
    xAxis: {
        type: 'category',
        data: ['Matcha Latte', 'Milk Tea', 'Cheese Cocoa', 'Walnut Brownie']
    },
    yAxis: {},
    series: [
        {
            type: 'bar',
            name: '2015',
            data: [89.3, 92.1, 94.4, 85.4]
        },
        {
            type: 'bar',
            name: '2016',
            data: [95.8, 89.4, 91.2, 76.9]
        },
        {
            type: 'bar',
            name: '2017',
            data: [97.7, 83.1, 92.5, 78.1]
        }
    ]
}
  • dataset,数据合并
var option = {
    legend: {},
    tooltip: {},
    dataset: {
        source: [
            ['product', '2012', '2013', '2014', '2015'],
            ['Matcha Latte', 41.1, 30.4, 65.1, 53.3],
            ['Milk Tea', 86.5, 92.1, 85.7, 83.1],
            ['Cheese Cocoa', 24.1, 67.2, 79.5, 86.4]
        ]
    },
    xAxis: [
        {type: 'category', gridIndex: 0},
        {type: 'category', gridIndex: 1}
    ],
    yAxis: [
        {gridIndex: 0},
        {gridIndex: 1}
    ],
    grid: [
        {bottom: '55%'},
        {top: '55%'}
    ],
    series: [
        // 这几个系列会在第一个直角坐标系中,每个系列对应到 dataset 的每一行。
        {type: 'bar', seriesLayoutBy: 'row'},
        {type: 'bar', seriesLayoutBy: 'row'},
        {type: 'bar', seriesLayoutBy: 'row'},
        // 这几个系列会在第二个直角坐标系中,每个系列对应到 dataset 的每一列。
        {type: 'bar', xAxisIndex: 1, yAxisIndex: 1},
        {type: 'bar', xAxisIndex: 1, yAxisIndex: 1},
        {type: 'bar', xAxisIndex: 1, yAxisIndex: 1},
        {type: 'bar', xAxisIndex: 1, yAxisIndex: 1}
    ]
}

对象数组格式

option = {
    legend: {},
    tooltip: {},
    dataset: {
        // 用 dimensions 指定了维度的顺序。直角坐标系中,
        // 默认把第一个维度映射到 X 轴上,第二个维度映射到 Y 轴上。
        // 如果不指定 dimensions,也可以通过指定 series.encode
        dimensions: ['product', '2015', '2016', '2017'],
        source: [
            {product: 'Matcha Latte', '2015': 43.3, '2016': 85.8, '2017': 93.7},
            {product: 'Milk Tea', '2015': 83.1, '2016': 73.4, '2017': 55.1},
            {product: 'Cheese Cocoa', '2015': 86.4, '2016': 65.2, '2017': 82.5},
            {product: 'Walnut Brownie', '2015': 72.4, '2016': 53.9, '2017': 39.1}
        ]
    },
    xAxis: {type: 'category'},
    yAxis: {},
    series: [
        {type: 'bar'},
        {type: 'bar'},
        {type: 'bar'}
    ]
};

vue2_echarts安装使用_入门_数据_05


效果

vue2_echarts安装使用_入门_柱状图_06

结束

本文分享到这结束,如有错误或者不足之处欢迎指出,感谢大家的阅读!


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月05日 0

暂无评论

推荐阅读
6DMaaPzJglxt