这是我参与8月更文挑战的第3天,活动详情查看:8月更文挑战数组
echarts仪表盘下半圆隐约存在markdown
目前设置的axisLine.lineStyle.color,不是只是分段颜色设置,为了渐变衔接的效果,有一部分点是叠加了两层颜色设置。echarts
先全长度铺了一层绿色,从左往右透明度下降;再从0.8的位置到结束,铺了一层黄色,从左往右透明度升高。post
大体的axisLine.lineStyle.color数组设置以下:spa
axisLine.lineStyle.color =
[
[
0,
"rgba(255,255,255,0.2)"
],
......
[
0.9975,
"rgba(0, 255, 0,0.005)"
],
[
0.8,
"rgba(255, 255, 0,0.01)"
],
......
[
0.998,
"rgba(255, 255, 0,1)"
],
[
1,
"rgb(255,0,0)"
]
]
复制代码
这样能够作出天然的过分,可是仔细查看,echarts仪表盘下半圆隐约存在。指针
PS:可直接跳到最后,看第6个解决方案:“六、完美的echarts仪表盘渐变设置方案”code
axisLine.lineStyle.color =
[
[
0,
"rgba(255,255,255,0.2)"
],
......
[
0.8,
"rgba(255, 255, 0,0.01)"
],
......
[
0.9975,
"rgba(0, 255, 0,0.005)"
],
......
[
0.998,
"rgba(255, 255, 0,1)"
],
[
1,
"rgb(255,0,0)"
]
]
复制代码
现象:orm
echarts仪表盘下半圆消失,可是过分明显不天然,出现条纹。排序
缘由:ip
由于有像0.96这类点有两个颜色设置,去重操做,留下第一个或者第二个。
现象:
echarts仪表盘下半圆消失,可是过分明显不天然,仍然出现条纹。 因而想到第三个方法,重复点不能直接去掉而是取中间值。
const uniqueArr = (oldArr) => {
let newArray = []
for (let i = 0; i < oldArr.length; i++) {
if (i > 0) {
if (oldArr[i][0] !== oldArr[i - 1][0]) {
newArray.push(oldArr[i])
} else {
let co1 = newArray[newArray.length - 1][1]
let co2 = oldArr[i][1]
let aaa = co1.split(',')[3].replace(')', '')
let bbb = co2.split(',')[3].replace(')', '')
let opacity = (parseFloat(aaa) + parseFloat(bbb)) / 2
newArray[newArray.length - 1][1] = 'rgba(128, 255, 0, ' + opacity + ')'
}
}
}
return newArray
}
复制代码
现象:
echarts仪表盘下半圆消失,可是过分明显不天然,仍然出现条纹。
现象:
echarts仪表盘下半圆消失,可是过分明显不天然。
此方法用刻度当调图,没法再设置坐标轴线样式axisLine.lineStyle.color,由于已被覆盖。
<img src="/static/aaa.png" id="bg_img" style="display:none"/>
注意:确保img节点已挂载
axisTick: {
show: true,
length: 30,
splitNumber: 100,
lineStyle: {
color: {
image: document.getElementById('bg_img'),
repeat: 'no-repeat'
},
width: 3
}
},
复制代码
现象:
echarts仪表盘下半圆消失,过分很天然,可是没法再设置坐标轴线样式,没法动态置灰某段值,且指针不能随当前坐标轴点颜色改变而改变。
使用series便可!!!
每一个series的样式如出一辙,值也同样,能不显示就不显示,可是颜色axisLine.lineStyle.color必须设置不同,每个series设置一个单独的从头至尾的渐变便可。
注意:
虽然多个series只是为了叠加颜色,可是必须充填数据项和值,否则提示框组件tooltip、指针显示不一样步,打不到叠加颜色的指针效果。