echarts折线图配置项
由于工作中遇到的图表特别多,每次用过配置项总是想不起来,在这里记录一下,希望也可以帮到路过的你。话不多说我们上图:
左边的是设计稿,右边的是echarts的示例图,我们先找不同,需要重新配置的地方,首先是顶部的legend的icon,文字都要改,然后就是X轴的label要过滤换行,中间区域折线上点的样式,Y轴的刻度值区间不是从0开始,由于我的需求折线的条数是不确定的,需要做成动态,话不多说上代码,代码中配置项我都写了注释:
methods: {
initAirtrends: function () {//这里就不多说,上篇文章有细说
if (!document.getElementById('airtrends')) return;
this.myChart = this.$echarts.init(document.getElementById('airtrends'));
this.setairtrendsoption();
window.addEventListener("resize", () => {
if (this.myChart) {
this.myChart.resize();
}
});
},
setairtrendsoption() {
let option = {
legend: {//顶部每条折线的标识的配置项
icon: "circle", // 改变它的icon circle,rect ,roundRect,triangle
itemWidth:8, // 设置它的宽度
itemHeight:8, // 设置它的高度
itemGap:20, // 设置它的间距
// orient: 'vertical', //vertical是竖着显示 ,默认是横着
// left: '70%', //距离左边70%,也可用left,center,right
y: '1%', //距离顶部的距离,也可以用center
// textStyle:{ //icon后面的文字设置
// fontSize: 18,//字体大小
// color: '#ffffff'//字体颜色
// }
},
xAxis: {//X轴配置项
type: 'category',
data: this.xAxislist,//由于X轴也是动态的,我做了处理,看你需求,一般是写死的
boundaryGap: false,//数据点从边缘开始
axisLine: {
show:false,//不显示坐标轴线
},
axisTick:{
show:false,//不显示X轴坐标刻度
},
// axisLabel:{//X轴的label配置项,我没有用到
// formatter: value=> {
// if(this.value == 'today'){
// return text;
// }else{
// return value;
// }
// }
// }
},
grid:{//整个图例的大小,四个方向距离容器的距离,也可以用上下左右配置百分比
x:30,
x2:20,
y:40,
y2:30,
//containLabel: true
},
yAxis: {//Y轴配置项
type: 'value',
scale:true,//x轴刻度不从0开始,自动获取区间
//min:50,//设置最小区间,也可以设置max,如果设置了上面的scale就不生效了
},
series:this.series,//这是决定有几条线的数据,处理成你要的数据格式,也可以写死,那就是下面的写法
// [
// {
// name:'图一',//每一项数据的名字,与legend关联
// data: [150, 230, 224, 218, 135, 147, 260,110, 200, 124, 118, 235, 247, 160],//具体数据
// type: 'line',//每一个点用线连接
// },
// {
// name:'图二',
// data: [110, 200, 124, 118, 235, 247, 160,150, 230, 224, 218, 135, 147, 260],
// type: 'line'
// }
// ]
};
this.myChart.setOption(option);
},
},
在这里我们折线图就配置完了,接下来记录下关于折线图另外的东西:
1,在开发中如果后端返回的数据为空,折线图会还是上一次的数据,试过setoption方法,由于我们数据不确定条数,这个方法不能完全覆盖,可以记住的这个方法,清除当前图表的缓存数据
this.myChart.dispose();
2,如果后端返回的数据不全时,例如我们X轴有13个刻度,返回的数组只有10个,那我们每个值需要告诉echarts他们对应哪一个刻度值,这个时候哦我们可以这样配置
series:[
{
name:'图一',//每一项数据的名字,与legend关联
data: [ [ 2022.01.01 , 88],[ 2022.01.02 , 89],[ 2022.01.03 , 90] ],//数组里面还是数组,第一项是指定的X轴刻度,第二个是具体的值
type: 'line',//类型为线型
connectNulls: true//由于我们数据缺失,数据点就断开了,线就断了,这个属性就是即使断了让他们连接起来。
}
]
3,我们在开发中经常遇到,折线以下的区域,需要做渐变的效果需求,记录下这个配置,我们需要借助echarts一个特殊的方法this.$echarts.graphic.LinearGradient
areaStyle: {
color: new this.$echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
//折线图颜色渐变
offset: 0,
color: "rgba(216, 228, 254)",
},
{
offset: 1,
color: "rgba(254,254,254)",
},
]
),
},
好的,在这里我就是想记录关于折线图的所有东西,感恩你与我每一次以代码形式的遇见,分享使我们未来越来越好。
版权声明:本文为m0_52313178原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。