echarts
今天遇到两个问题:1、使用echarts绘制多条折线图时,一次只展示一条曲线,点击图例后显示选中类型的数据折线;2、多条折线图的y轴坐标顶部显示对应的数据单位。
解决办法:1、使用echarts中监听图例发生变化的事件(legendselectchanged),在echarts中图例的选中与否控制着其对应的数据折线是否显示,所以只要改变图例的选中状态即可。legend.selected代表着图例的选中状态,所以只要改变legend.selected(这是个对象)就可以达到目的了;
代码如下
var myChartObj = echarts.init(document.getElementById('myChart'));
var option = {
title: {
text: ''
},
tooltip: {
trigger: 'axis'
},
legend: {
data:['邮件营销','联盟广告','视频广告','直接访问','搜索引擎'],
selected:{
'邮件营销':true,
'联盟广告':false,
'视频广告':false,
'直接访问':false,
'搜索引擎':false
}
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'category',
boundaryGap: false,
data: ['周一','周二','周三','周四','周五','周六','周日']
},
yAxis: {
type: 'value'
},
series: [
{
name:'邮件营销',
type:'line',
data:[120, 132, 101, 134, 90, 230, 210]
},
{
name:'联盟广告',
type:'line',
data:[220, 182, 191, 234, 290, 330, 310]
},
{
name:'视频广告',
type:'line',
data:[150, 232, 201, 154, 190, 330, 410]
},
{
name:'直接访问',
type:'line',
data:[320, 332, 301, 334, 390, 330, 320]
},
{
name:'搜索引擎',
type:'line',
data:[820, 932, 901, 934, 1290, 1330, 1320]
}
]
};
myChartObj.setOption(option);
myChartObj.on('legendselectchanged',function(params){
console.log(params);
var option = this.getOption();
var curClickLegeng = params.name;//当前点击图例名称
var allLegend = params.selected;
var allLegendKeys = Object.keys(params.selected);
if(params.selected[curClickLegeng]){//判断当前点击图例的选中状态
for(var i = 0;i<allLegendKeys.length;i++){
if(curClickLegeng == allLegendKeys[i]){
allLegend[allLegendKeys[i]] = true;
}else{
allLegend[allLegendKeys[i]] = false;
}
}
}
option.legend[0].selected = allLegend;
myChartObj.setOption(option);
})
2、y轴显示单位有两种方式:(1):坐标轴名称,(2):坐标轴刻度标签,这两者都是在yAxis属性中,前者是yAxis.name;后者是yAxis.axisLabel.formatter