如何在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 表单输入框不支持focus及blur事件的解决方案
Nov 17 Vue.js
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 Vue.js
vue实现广告栏上下滚动效果
Nov 26 Vue.js
Vue使用鼠标在Canvas上绘制矩形
Dec 24 Vue.js
Vue 简单实现前端权限控制的示例
Dec 25 Vue.js
Vue中inheritAttrs的使用实例详解
Dec 31 Vue.js
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
Jan 05 Vue.js
Vue包大小优化的实现(从1.72M到94K)
Feb 18 Vue.js
vue中h5端打开app(判断是安卓还是苹果)
Feb 26 Vue.js
vue组件vue-esign实现电子签名
Apr 21 Vue.js
vue-cli3.x配置全局的scss的时候报错问题及解决
Apr 30 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
Home Coffee Roasting
2021/03/03 咖啡文化
php中文件上传的安全问题
2006/10/09 PHP
php使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
标准PHP的AES加密算法类
2015/03/12 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
PHP+Apache环境中如何隐藏Apache版本
2017/11/24 PHP
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
2010/05/18 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
2014/12/29 Javascript
JavaScript学习笔记之内置对象
2015/01/22 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
javascript与Python快速排序实例对比
2015/08/10 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
JQuery实现Ajax加载图片的方法
2015/12/24 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
2016/05/07 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
Angular2+如何去除url中的#号详解
2017/12/20 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
Vue前端开发规范整理(推荐)
2018/04/23 Javascript
使用python删除nginx缓存文件示例(python文件操作)
2014/03/26 Python
EM算法的python实现的方法步骤
2018/01/02 Python
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
python可迭代对象去重实例
2020/05/15 Python
Python数据可视化实现多种图例代码详解
2020/07/14 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
linux面试题参考答案(11)
2016/11/26 面试题
会计学生自我鉴定
2014/02/06 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
代办社保委托书范文
2014/10/06 职场文书
党员带头倡议书
2015/04/29 职场文书
vue实力踩坑之push当前页无效
2022/04/10 Vue.js