如何在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编写h5公众号跳转小程序的实现代码
Nov 27 Vue.js
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
Vue——解决报错 Computed property &quot;****&quot; was assigned to but it has no setter.
Dec 19 Vue.js
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 Vue.js
vue使用lodop打印控件实现浏览器兼容打印的方法
Feb 07 Vue.js
使用vue-element-admin框架从后端动态获取菜单功能的实现
Apr 29 Vue.js
vue如何批量引入组件、注册和使用详解
May 12 Vue.js
Vue3.0 手写放大镜效果
Jul 25 Vue.js
Vue如何清空对象
Mar 03 Vue.js
vue ref如何获取子组件属性值
Mar 31 Vue.js
vue3使用vuedraggable实现拖拽功能
Apr 06 Vue.js
vue 自定义的组件绑定点击事件
Apr 21 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
德生PL990的分析评价
2021/03/02 无线电
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
Eclipse的PHP插件PHPEclipse安装和使用
2014/07/20 PHP
thinkphp特殊标签用法概述
2014/11/24 PHP
PHP观察者模式实例分析【对比JS观察者模式】
2019/05/22 PHP
Apache站点配置SSL强制跳转443
2021/03/09 Servers
一段好玩的JavaScript代码
2006/12/01 Javascript
JS 文件传参及处理技巧分析
2010/05/13 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
使用js正则控制input标签只允许输入的值
2013/07/29 Javascript
JavaScript限定复选框的选择个数示例代码
2013/08/25 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
2016/10/24 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
分享19个JavaScript 有用的简写写法
2017/07/07 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
浅谈Vue使用Elementui修改默认的最快方法
2020/12/05 Vue.js
Python 基础教程之包和类的用法
2017/02/23 Python
python实现员工管理系统
2018/01/11 Python
python使用KNN算法手写体识别
2018/02/01 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
Html5实现首页动态视频背景的示例代码
2019/09/25 HTML / CSS
英国第二大营养品供应商:Vitabiotics
2016/10/01 全球购物
表彰会主持词
2014/03/26 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
班委竞选稿范文
2015/11/21 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书