如何在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项目实现主题切换的多种方法
Nov 26 Vue.js
浅谈Vue使用Elementui修改默认的最快方法
Dec 05 Vue.js
vuex Module将 store 分割成模块的操作
Dec 07 Vue.js
浅析vue中的nextTick
Dec 28 Vue.js
vue中使用echarts的示例
Jan 03 Vue.js
vue动态设置路由权限的主要思路
Jan 13 Vue.js
如何在Vue项目中添加接口监听遮罩
Jan 25 Vue.js
vue使用transition组件动画效果的实例代码
Jan 28 Vue.js
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
详解Vue中$props、$attrs和$listeners的使用方法
Feb 18 Vue.js
Vue3中toRef与toRefs的区别
Mar 24 Vue.js
vue使用localStorage持久性存储实现评论列表
Apr 14 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
在普通HTTP上安全地传输密码
2007/07/21 PHP
php函数之子字符串替换&amp;#65279; str_replace
2011/03/23 PHP
使用GD库生成带阴影文字的图片
2015/03/27 PHP
php抓取并保存网站图片的实现代码
2015/10/28 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
2016/09/26 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
PHP配置ZendOpcache插件加速
2019/02/14 PHP
Javascript this 的一些学习总结
2012/08/02 Javascript
js 对小数加法精度处理示例说明
2013/12/27 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
jquery实现的动态回到顶部特效代码
2015/10/28 Javascript
理解JavaScript事件对象
2016/01/25 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
移动适配的几种方案(三种方案)
2016/11/25 Javascript
微信小程序网络请求wx.request详解及实例
2017/05/18 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
[54:45]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 Optic vs OG
2018/04/02 DOTA
Python中random模块用法实例分析
2015/05/19 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
2018/01/24 Python
python实现大转盘抽奖效果
2019/01/22 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
pytorch中的卷积和池化计算方式详解
2020/01/03 Python
python破解同事的压缩包密码
2020/10/14 Python
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
大学新生军训个人的自我评价
2013/10/03 职场文书
大学生如何写自荐信
2014/01/08 职场文书
《赵州桥》教学反思
2016/02/17 职场文书
python爬虫之利用selenium模块自动登录CSDN
2021/04/22 Python
Java实现多线程聊天室
2021/06/26 Java/Android
详解Vue slot插槽
2021/11/20 Vue.js
解析探秘fescar分布式事务实现原理
2022/02/28 Java/Android