*** eacharts多曲线情况下自定义y轴绘制分割线 ***
之前有算过动态去求最大值、最小值、平均值
仙人指路 =》 echarts动态设置y轴刻度的最大值、最小值、平均值
如何现在,我们要绘制自定义分割线~
何为自定义分割线?
绘制图如下图所示:
绘制第一步:
先绘制出简单的模块:
option = {
title: {
text: '自定义最大值-最小值-平均值',
left: 'left'
},
legend: {
// left: 'left',
icon: 'rect' //矩形 //itemWidth: 25, // 设置宽度 itemHeight: 15, // 设置高度itemGap: 40 ,// 设置间距,
},
xAxis: {
type: 'category'
},
yAxis: {
type: 'value'
},
series: [
{
id: 'AreaChart',
type: 'line',
symbolSize: 1,
itemStyle: {
normal: {
color: 'rgb(0,153,255)'
}
},
markArea: {
silent: true,
itemStyle: {
normal: {
color: 'rgb(0,153,255,0.2)'
}
},
data: [
[
{
yAxis: 0
},
{
yAxis: 0
}
]
]
},
markLine: {
silent: true,
data: [
{
yAxis: 0,
lineStyle: {
type: 'dashed',
width: 1.2,
color: 'rgb(0,103,255)'
}
},
{
yAxis: 0
},
{
yAxis: 0
}
]
}
},
{
name: 'get',
data: [150, 230, 224, 218, 135, 147, 260],
type: 'line'
}
]
};
得到图形如下
我认为 将绘制分割线在series里绘制出来是一种比较简单的办法,你后续可以动态绘制曲线,新增曲线,改变曲线值
绘制第二步
曲线绘制好了,分割线也绘制好了,现在要将自定义的分割线值传入option,改变值
如果将分割线曲线绘制在第一条的时候,可以直接使用option.series[0].方法 去改变
方法如下:
option.series[0].markLine.data[0].yAxis = 200; // 中间高亮额定值线
option.series[0].markLine.data[1].yAxis = 150; // 下箭头
option.series[0].markLine.data[2].yAxis = 250; // 上箭头
option.series[0].markArea.data[0][0].yAxis = 250; // 区域
option.series[0].markArea.data[0][1].yAxis =150; // 区域
myChart.setOption(option);
如果分割线是后续绘制上去的,无法确定曲线位置,可以给分割线曲线加个id
后续找曲线位置的方法如下
//分割线曲线的位置
var areaI = 0;
var series = myChart.getOption().series;
$.each(series, function(i, serie) {
if (serie.id == "AreaChart") {
area = true;
areaI = i;
}
});
//绘制曲线
option.series[areaI].markLine.data[0].yAxis =自定义的值;
****省略
做个笔记,放上来,以后我忘了还能看看~