1.在html文件导入echart
1
2
|
<!-- 引入echarts --> < script src = "https://cdn.bootcdn.net/ajax/libs/echarts/4.8.0/echarts.min.js" ></ script > |
2.在main.js上挂载echarts对象
1
2
|
Vue.prototype.$echarts = window.echarts // 使用时直接使用this.$echarts |
3.页面结构
1
2
3
4
5
|
< template > < div class = "com-container" > < div class = "com-chart" ref = "sellerRef" ></ div > </ div > </ template > |
4.data中的数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
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钩子函数调用
1
2
3
4
5
|
// dom加载完成调用 mounted () { this .initChart() this .getData() }, |
更改柱形图配置
1.在index.html 引入主题配置文件
1
2
|
<!-- 引入主题 --> < script src = "./static/lib/theme/chalk.js" ></ script > |
2.在需要使用主题的地方使用 初始化获取dom传入chalk
1
|
this .chartInstance = this .$echarts.init( this .$refs.sellerRef, 'chalk' ) |
3.option的配置 LinearGradient(x1,x2,y1,y2)线性渐变
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
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 中使用柱状图 的资料请关注服务器之家其它相关文章!
原文链接:https://juejin.cn/post/6919726191666528263