Vue2 echarts 水球图的使用

先贴一个官方文档,以下参数均是文档中整理的:echarts水球图官网

安装

npm install echarts
npm install echarts-liquidfill

注意在这里需要查看echarts版本是4还是5,echarts@5的版本与echarts-liquidfill@3兼容,echarts@4的版本与echarts-liquidfill@2兼容,如果版本不对应,会报错!!!因为我踩坑了我的echarts版本是4.9.0,装的依赖是最新版的,也就是echarts-liquidfill@3,后来就报错了,然后看官网发现得用2的,我就下载了[email protected]版本的。

引入水球图

//main.js
import echarts from 'echarts'
import 'echarts-liquidfill'
Vue.prototype.$echarts = echarts;

使用的时候,还是需要echarts初始化的,echarts初始化需要一个容器,还需要以下几个基本步骤:

<template>
	<div id="liquid"></div>
</template>
<script>
	export default{
		mounted(){
			const chart = this.$echarts.init(document.getElementById('liquid'));
			chart.setOption({
                series: [{
                    type: 'liquidFill',
                    data:[0.68,0.5,0.4],
                    label:{
                        fontSize:20
                    }
                }]
            });
		}
	}
</script>

Vue-ECharts的安装与使用

Vue-ECharts的安装与使用:

npm install echarts vue-echarts
npm i -D @vue/composition-api

如果你在使用基于 Vue 2 的 NuxtJS,那么还需要安装 @nuxtjs/composition-api:

npm i -D @nuxtjs/composition-api

引入Vue-ECharts:

import VueEcharts from 'vue-echarts'
Vue.component('v-chart',VueEcharts)

如果使用Vue-ECharts,就可以减少代码量(不需要init等等),在options中就可以配置echarts:

<template>
	<v-chart :options="liquidOptions" class="liquid"/>
</template>
<script>
	export default{
		data(){
            return {
                liquidOptions:{
                	series: [{
                    	type: 'liquidFill',
                    	data:[0.68,0.5,0.4],
                    	label:{
                        	fontSize:20
                    	}
                	}]
                }
             }
        }
	}
</script>

关于水球图的配置

liquidOptions:{
	series: [{
		type: 'liquidFill',
		radius:'50%', //无论是%还是px好像都没生效,但我看官方设置半径是这样写的啊,欸
		//data只能从大到小排,表示在哪个百分位会有一条波纹,对某个数值的波纹需要设置可以用{}
        data:[0.68,0.5,{
        	value:0.4, //波纹值
            direction:'left' //设置该值的波纹移动方向向左,默认向右
        }], //在不同位置有一个波浪
        color:['red','green','blue'], //设置在不同位置区间背景颜色不同
        animationDuration:15, //初始动画持续时间
        animationDurationUpdate:7, //更新动画
        //amplitude:10, //设置波浪陡峭度
        itemStyle:{
           opacity:0.6, //颜色透明度
        },
        //标签设置
        label:{
           fontSize:20  
        },
        //水球图轮廓配置
        outline: {
           show: false, //隐藏轮廓
           borderDistance:2, //轮廓边框距离
           itemStyle:{
           	borderWidth:2,
            borderColor:'red',
            shadowBlur:'none'
           }
         },
         //hover时水球的样式
         emphasis: {
            itemStyle: {
                opacity: 0.9
            }
         },
         //背景颜色配置
         backgroundStyle:{
            color:'purple',
            borderWidth:4,
            borderColor:'#eee'
         }
     }]
  }

v-charts也有水球图可以用,但我试了以下不是很好用,这官方文档也不是很好看的亚子…不知道为什么,就是这个settings配置啊,不生效,有样子但是settings改了不生效,真是气死了。。。
v-charts官网
Vue2 echarts 水球图的使用_第1张图片
我配置有问题,又试了以下,可以了,这个文档咋这样,这文档怎么看???

<template>
	<ve-liquidfill :data="chartData" height='190px' :settings="chartSettings"/>
</template>
<script>
	export default{
		data(){
			return{
				chartData:{
                    columns:['title','percent'],
                    rows:[{
                        title:'支付转化率',
                        percent:0.68
                    }]
                },
                chartSettings:{
                    wave:[0.4,0.2],
                    seriesMap:{
                        '支付转化率':{
                            radius:'80%',
                            color:'#45c946',
                            label:{
                                insideColor:'#fff',//水波和文字交叠时,显示白色
                                color:'grey',
                                fontWeight:'normal',
                                fontSize:36,
                                formatter:(val)=>{
                                    return `${(val.value*100).toFixed(2)}%`;
                                }
                            },
                            itemStyle:{
                                shadowBlur:0,  //取消背景阴影
                                shadowColor:'#fff'
                            },
                            backgroundStyle:'#fff', //设置背景颜色
                            amplitude:8, //波浪振幅
                            color:['#45c946'],
                            outline:{
                                borderDistance:0, //水球图边框距离
                                itemStyle:{
                                    borderColor:'#eee', 
                                    borderWidth:1, 
                                }
                            }
                        }
                    }
                }
			}
		}
	}
</script>

你可能感兴趣的:(echarts,echarts,前端,vue)