如何在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项目设置resolves.alias: '@'路径并适配webstorm
Dec 02 Vue.js
vue 动态创建组件的两种方法
Dec 31 Vue.js
如何在VUE中使用vue-awesome-swiper
Jan 04 Vue.js
vue实现一个获取按键展示快捷键效果的Input组件
Jan 13 Vue.js
如何在vue 中使用柱状图 并自修改配置
Jan 21 Vue.js
vue实现轮播图帧率播放
Jan 26 Vue.js
Vue 实现可视化拖拽页面编辑器
Feb 01 Vue.js
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 Vue.js
详解vue3中组件的非兼容变更
Mar 03 Vue.js
vue3.0中使用element的完整步骤
Mar 04 Vue.js
Vue.Draggable实现交换位置
Apr 07 Vue.js
vue ant design 封装弹窗表单的使用
Jun 01 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 file_exists问题杂谈
2012/05/07 PHP
php取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
轻松创建nodejs服务器(8):非阻塞是如何实现的
2014/12/18 NodeJs
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
Bootstrap在线电子商务网站实战项目5
2016/10/14 Javascript
nodejs入门教程六:express模块用法示例
2017/04/24 NodeJs
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
python计算最小优先级队列代码分享
2013/12/18 Python
Python遍历指定文件及文件夹的方法
2015/05/09 Python
用pandas中的DataFrame时选取行或列的方法
2018/07/11 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
Python实现剪刀石头布小游戏(与电脑对战)
2019/12/31 Python
Pycharm 设置默认解释器路径和编码格式的操作
2021/02/05 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
电脑租赁公司创业计划书
2014/01/08 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
学生上课看漫画的检讨书
2014/09/26 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL