百万前端之vue2.x+echarts

vue2+echarts其实很简单,可以先到apache echarts官网(https://echarts.apache.org/zh)查看文档了解用法。

以下例子是基于vue2.x环境下运行的:

  1. 安装echarts

npm install echarts
  1. 在mian.js中引入

import * as echarts from 'echarts'

Vue.prototype.$echarts = echarts
  1. 页面中使用

<template>
    <div class="content">
        <van-sticky>
            <van-nav-bar title="我的数据" left-arrow @click-left="$router.go(-1)" />
        </van-sticky>
        <!-- 商品销量饼图 -->
        <van-cell title="商品销量饼图"/>
        <div class="echarts" id="productRadar" style="width: 100%;height: 25rem;"></div>
    </div>
</template>

<script>
export default {
  name: "echarts",
  data() {
    return {
      indicator: [], //饼图名字数据
      indicatorInfo: []
    };
  },
  created() {},
  mounted() {
    this.getProductData();
  },
  methods: {
    //获取商品销售数据
    getProductData() {
      //初始化数组
      var sales = new Array(); //销售数量
      var prices = new Array(); //销售价格
      this.$axios.productData().then(res => {
        this.mapList = res.data.map.mapList;
        //处理数据后渲染饼图
        let infoName = "";
        this.mapList.map((item, index) => {
          let dataName = item.name.split(" ");
          if (dataName[6] != "") {
            infoName = dataName[1] + dataName[6];
          } else {
            infoName = dataName[0];
          }
          this.indicatorInfo.push(infoName);
          //价格
          this.$set(prices, index, item.price);
          this.$set(sales,index,{
            value:item.sale,
            name:item.name,
          })
        });
        //类型名字
        this.indicatorInfo.map((indi, index) => {
          this.$set(this.indicator, index, {
            name: indi,
            
          });
        });
        this.myInit(sales, prices); //调用echarts绘图
      });
    },
    //绘制饼图方法
    myInit(sales, prices) {
      //饼图
      let charts = this.$echarts.init(
        document.getElementById("productRadar"),
        "dark"
      );
      var option = {
        title: {
          text: 'Referer of a Website',
          subtext: 'Fake Data',
          left: 'center'
        },
        tooltip: {
          trigger: 'item'
        },
        legend: {
          orient: 'vertical',
          left: 'left'
        },
        series: [
          {
            name: 'Access From',
            type: 'pie',
            radius: '50%',
            data: sales,
            emphasis: {
              itemStyle: {
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowColor: 'rgba(0, 0, 0, 0.5)'
              }
            }
          }
        ]
      };
      charts.setOption(option);
    },
  }
};
</script>

<style scoped>
#productRadar {
  margin-top: 0.5rem;
  box-sizing: border-box;
}
</style>
  1. 一定要在mounted方法中调用,防止出现渲染不上的问题。(个人看法)

  1. 效果图(样式和数据可以根据实际需求调整)

6.其余的雷达图、柱状图、散点图等等方法相同,学会控制数据和改变数据格式就可以轻松搞定大部分echarts啦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vue中使用echarts动态绑定数据,可以通过以下步骤实现: 1. 安装echarts 在终端中运行以下命令: ``` npm install echarts --save ``` 2. 引入echarts 在需要使用echarts的组件中,引入echarts: ```javascript import echarts from 'echarts' ``` 3. 创建echarts实例 在组件的mounted()生命周期方法中,创建echarts实例: ```javascript mounted() { this.chart = echarts.init(this.$refs.chart) }, ``` 其中,$refs是vue中的一个属性,可以获取到组件中的DOM元素。 4. 绑定数据 在组件中定义一个数据对象,用来存放echarts需要的数据,然后将数据绑定到echarts实例上: ```javascript data() { return { chartData: { xData: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], yData: [820, 932, 901, 934, 1290, 1330, 1320] } } }, mounted() { this.chart = echarts.init(this.$refs.chart) this.chart.setOption({ xAxis: { type: 'category', data: this.chartData.xData }, yAxis: { type: 'value' }, series: [{ data: this.chartData.yData, type: 'line' }] }) }, ``` 在以上代码中,我们定义了一个数据对象chartData,其中包含了x轴和y轴的数据。在mounted()方法中,我们将数据绑定到echarts实例上,设置x轴和y轴的数据以及图表类型。这样,echarts图表就可以根据绑定的数据进行渲染。 5. 监听数据变化 如果需要动态更新echarts图表,可以在数据变化时,重新设置echarts实例的option: ```javascript watch: { 'chartData.yData': function() { this.chart.setOption({ series: [{ data: this.chartData.yData, type: 'line' }] }) } } ``` 在以上代码中,我们监听了chartData.yData的变化,当数据变化时,重新设置echarts实例的series属性,从而实现动态更新图表的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值