vue如何利用echarts
做一个柱形图,下面编程教程网小编给大家详细介绍一下具体实现代码!
template代码:
<template>
<div ref="BarChart" style="height: 1000px; width: 100%"/>
</template>
js代码:
import echarts from 'echarts'export
default {
data() {
return {
chart:
null,
data: [],
//数据
xData: [],
//x轴
yBarData: [],
//y轴
yLable: [],
colorStops: [],
chartLegend: [],
//图例
colorOptions: [ //图例以及柱形图颜色选择
'#5ba2e4',
'#f58510',
'#afa5a5',
'#facb3d',
'#0854cf',
'#48c611',
'#082b63'
]
}
},
mounted() {
this.fetchData()
//图的大小自适应
window.addEventListener('resize', () = >{
if (this.chart) {
this.chart.resize()
}
})
},
beforeDestroy() { //实例销毁之前调用
if (!this.chart) {
return
}
this.chart.dispose()
this.chart = null
},
methods: {
fetchData() {
this.xData = ["黑龙江", '辽宁', '贵州', '福建', '湖北', '河南', '河北', '山西', '山东', '天津', '吉林', '北京', '内蒙古', '云南']
this.yLable = ['10', '20', '30', '40', '50', '60', '70', '80', '90', '100', '110', '120', '130', '140']
this.chartLegend = []
const dateArr = []
this.yLable.forEach((item, index) = >{
if (item !== null && item !== undefined) {
dateArr.push(this.yLable[index])
}
})
this.chartLegend = dateArr this.initData()
this.initChart()
},
initData() {
this.yBarData = this.yLable
},
initChart() {
this.chart = echarts.init(this.$refs.BarChart)
this.chart.clear() // 清空当前实例
let colors = []
const dom = 800
const barWidth = dom / 20
for (let i = 0; i < 4; i++) { colors.push({ colorStops: [ { offset: 0, color: '#73fcff' // 最左边 }, { offset: 0.5, color: '#86eef1' // 左边的右边 颜色 }, { offset: 0.5, color: '#5ad6d9' // 右边的左边 颜色 }, { offset: 1, color: '#3dc8ca' }] }) } this.chart.setOption({ backgroundColor: '#010d3a', //提示框 tooltip: { trigger: 'axis', formatter: "{b} : {c}", axisPointer: { // 坐标轴指示器,坐标轴触发有效 type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' } }, /**区域位置*/ grid: { left: '10%', right: '10%', top: '10%', bottom: '10%', }, //X轴 xAxis: [{ data: this.xData, type: 'category', show: true, axisLine: { show: false, lineStyle: { color: 'rgba(255,255,255,1)', shadowColor: 'rgba(255,255,255,1)', // shadowOffsetX: '20' }, symbol: ['none', 'arrow'], symbolOffset: [0, 25] }, splitLine: { show: false }, axisTick: { show: false }, axisLabel: { margin: 20, fontSize: 10 } }], yAxis: { show: true, splitNumber: 4, axisLine: { show: false }, splitLine: { show: true, lineStyle: { type: 'dashed', color: '#075858' }, }, axisLabel: { show: true, color: '#FFFFFF', margin: 30, fontSize: 15 } }, series: [ { //数据颜色 name: '日付费用户数', type: 'bar', barWidth: barWidth, itemStyle: { normal: { color: (params) = >{
return colors[params.dataIndex % 4];
}
}
},
label: {
show: true,
position: [barWidth / 2, -(barWidth + 20)],
color: '#ffffff',
fontSize: 14,
fontStyle: 'bold',
align: 'center'
},
data: this.yBarData
},
{ //底
z: 2,
type: 'pictorialBar',
data: this.yBarData,
symbol: 'diamond',
symbolOffset: [0, '50%'],
symbolSize: [barWidth, barWidth * 0.5],
itemStyle: {
normal: {
color: (params) = >{
return colors[params.dataIndex % 4]
}
}
}
},
{ //顶
z: 3,
type: 'pictorialBar',
symbolPosition: 'end',
data: this.yBarData,
symbol: 'diamond',
symbolOffset: [0, '-50%'],
symbolSize: [barWidth, barWidth * 0.5],
itemStyle: {
normal: {
borderWidth: 0,
color: (params) = >{
return colors[params.dataIndex % 4].colorStops[0].color;
}
}
}
}
]
},
true)
}
}
}
以上是编程学习网小编为您介绍的“vue如何做一个柱形图”的全面内容,想了解更多关于 vuejs 内容,请继续关注编程基础学习网。
沃梦达教程
本文标题为:vue如何做一个柱形图


猜你喜欢
- JavaScript+CSS相册特效实例代码 2023-12-14
- 解决:layUI数据表格+简单查询 2022-12-13
- 百度echarts X轴显示文本自定义 2024-12-07
- webpack学习笔记一:安装webpack、webpack-dev-server、内存加载js和html文件、loader处理非js文件 2023-10-28
- JAVA使用Gson解析json数据实例解析 2024-01-15
- layui表单select框同时支持下拉和输入的解决方案 2024-07-05
- Python3实现飞机大战游戏 2023-12-23
- 使用CSS实现小三角边框原理解析 2024-01-05
- 优化浏览器渲染 避免CSS expressions 2024-02-06
- JavaScript之BOM location对象+navigator对象+history 对象 2023-12-02