先贴一个官方文档,以下参数均是文档中整理的: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的安装与使用:
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官网
我配置有问题,又试了以下,可以了,这个文档咋这样,这文档怎么看???
<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>