如何在vue 中使用柱状图 并自修改配置


Posted in Vue.js onJanuary 21, 2021

1.在html文件导入echart

<!-- 引入echarts -->
 <script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.8.0/echarts.min.js"></script>

2.在main.js上挂载echarts对象

Vue.prototype.$echarts = window.echarts
// 使用时直接使用this.$echarts

3.页面结构

<template>
 <div class="com-container">
  <div class="com-chart" ref="sellerRef"></div>
 </div>
</template>

4.data中的数据

export default {
 data () {
  return {
   // 初始化的图表
   chartInstance: null,
   allDate: null, // 服务器返回的数据
  }
 },
}
```js
##### 5.methods中的逻辑
```js
methods: {
  // 初始化echarts对象
  initEchart(){
    // 获取dom对象
    this.chartInstance = this.$echarts.init(this.$refs.sellerRef)
  },
  // 获取服务器的数据
  async getData(){
    const {data:res} = await this.$http.get('seller')
    this.allDate = res
    // 返会的数据结构是 name商家 value数值
   // 对返回的数据进行从小打到排序 sort方法
   this.allDate.sort((a, b) => {
    return a.value - b.value
   })
    // 调用更新视方法
    this.updateChart()
  },
  // 更新图表
  updateChart(){
  // y轴类目轴的数据
  const sellerNames = this.allDate.map(item=>{
    // 根据你的需求调整
    return item.name
  })
  // x轴数值轴的数据
  const sellerValues = this.allDate.map(item=>{
    return item.value
  })
     const option = {
    xAxis: {
     type: 'value'
    },
    yAxis: {
     type: 'category',
     // y轴坐标轴使用遍历出来的name
     data: sellerNames
    },
    series: [
     {
      // 类型为柱状图
      type: 'bar',
      // x轴数据需要设置在series的data类型为遍历的value
      data: sellerValues
     }
    ]
  }
  // 渲染optio数据给dom对象
  this.chartInstance.setOption(option)
},

mounted钩子函数调用

// dom加载完成调用
 mounted () {
  this.initChart()
  this.getData()
 },

更改柱形图配置

1.在index.html 引入主题配置文件

<!-- 引入主题 -->
 <script src="./static/lib/theme/chalk.js"></script>

2.在需要使用主题的地方使用 初始化获取dom传入chalk

this.chartInstance = this.$echarts.init(this.$refs.sellerRef, 'chalk')

3.option的配置 LinearGradient(x1,x2,y1,y2)线性渐变

const option = {
    title: {
     text: '| 商家销售统计',
     textStyle: {
      fontSize: 66
     },
     left: 20,
     top: 20
    },
    // 坐标轴配置
    grid: {
     top: '20%',
     left: '3%',
     right: '6%',
     bottom: '3%',
     // 距离包含坐标轴文字
     containLabel: true
    },
    xAxis: {
     type: 'value'
    },
    yAxis: {
     type: 'category',
     // y轴坐标轴使用遍历出来的name
     data: sellerNames
    },
    series: [
     {
      // 类型为柱状图
      type: 'bar',
      // x轴数据需要设置在series的data类型为遍历的value
      data: sellerValues,
      // 柱的宽度
      barWidth: 66,
      // 柱文字 默认不展示
      label: {
       show: true,
       // 文字靠右显示
       position: 'right',
       textStyle: {
        // 颜色为白色
        color: 'white'
       }
      },
      // 控制柱的每一项
      itemStyle: {
       // 控制柱的圆角半径
       barBorderRadius: [0, 33, 33, 0],
       // 线性渐变
       // 指定不同百分比的颜色数值
       color: new this.$echarts.graphic.LinearGradient(0, 0, 1, 0, [
        {
         // 百分之0的样式
         offset: 0,
         color: '#5052EE'
        },
        {
         // 百分之百
         offset: 1,
         color: '#AB6EE5'
        }
       ])
      }
     }
    ],
    tooltip: {
     trigger: 'axis',
     axisPointer: {
      type: 'line', // 默认为直线,可选为:'line' | 'shadow'
      z: 0, // 背景层级
      lineStyle: {
       width: 66, // 背景宽度
       color: '#2D3443' // 背景颜色
      }
     }
    }
   }
   ```

以上就是如何在vue 中使用柱状图 并自修改配置的详细内容,更多关于vue 中使用柱状图 的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
vue使用vant中的checkbox实现全选功能
Nov 17 Vue.js
vue-drawer-layout实现手势滑出菜单栏
Nov 19 Vue.js
vue3.0中setup使用(两种用法)
Dec 02 Vue.js
vue实现图片裁剪后上传
Dec 16 Vue.js
Vue实现简易购物车页面
Dec 30 Vue.js
手写Vue源码之数据劫持示例详解
Jan 04 Vue.js
vue实现防抖的实例代码
Jan 11 Vue.js
如何在vue中使用HTML 5 拖放API
Jan 14 Vue.js
Vue3 Composition API的使用简介
Mar 29 Vue.js
vue项目两种方式实现竖向表格的思路分析
Apr 28 Vue.js
vue+elementUI实现表格列的显示与隐藏
Apr 13 Vue.js
Vue看了就会的8个小技巧
Jan 21 #Vue.js
浅谈Vue开发人员的7个最好的VSCode扩展
Jan 20 #Vue.js
详解实现vue的数据响应式原理
Jan 20 #Vue.js
vue实现简易计算器功能
Jan 20 #Vue.js
vue使用过滤器格式化日期
Jan 20 #Vue.js
Vue实现简单计算器
Jan 20 #Vue.js
vue实现验证用户名是否可用
Jan 20 #Vue.js
You might like
去除php注释和去除空格函数分享
2014/03/13 PHP
php函数实现判断是否移动端访问
2015/03/03 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
2020/11/10 PHP
JS location几个方法小姐
2008/07/09 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
2012/05/30 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
2012/12/12 Javascript
node.js中的fs.rmdir方法使用说明
2014/12/16 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
H5实现中奖记录逐行滚动切换效果
2017/03/13 Javascript
使用store来优化React组件的方法
2017/10/23 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
[05:29]2014DOTA2国际邀请赛 赛后专访:LGDNewbee顺利过关
2014/07/13 DOTA
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
解决Python传递中文参数的问题
2015/08/04 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
2018/12/15 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
Python2和Python3的共存和切换使用
2019/04/12 Python
python基于Selenium的web自动化框架
2019/07/14 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
Python实现粒子群算法的示例
2021/02/14 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
Desigual德国官网:在线购买原创服装
2018/03/27 全球购物
捷克玩具商店:Bambule
2019/02/23 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
建筑自我鉴定
2013/10/19 职场文书
后勤主管工作职责
2013/12/07 职场文书
学生会主席就职演讲稿
2014/01/14 职场文书
便利店的创业计划书
2014/01/15 职场文书
领导班子群众路线与四风问题对照检查材料思想汇报
2014/10/11 职场文书
初中英语教学随笔
2015/08/15 职场文书
《少年闰土》教学反思
2016/02/18 职场文书
十大动画制作软件,Adobe产品上榜两款,第一是行业标准软件
2022/03/18 杂记