控制图例的显示与隐藏只需要控制两个属性:visible和showInLegend
根据实际的情境出发,我的需求是只要这个series数组里面的data最大值大于0就设置为true,默认为false
//得到series数组
function getSeries(datas,seriesName) {
var series = []
for(var i in seriesName) {
var visible = false;
var showInLegend = false;
if(Math.max.apply(null,datas[i]) > 0){
visible = true;//某些图例是否显示灰色
showInLegend = true;//是否显示某些图例
}
series.push({
type : 'column',
name : seriesName[i],
data : datas[i],
visible: visible,
showInLegend : showInLegend,
});
}
return series;
}
若是highstock,因为series数组中的data是二维数组,所以需要单独将y轴数据组成一个一维数组进行比较,后面的判断就和上面的无异
//得到series数组
function getSeries(datas, seriesName) {
var series = []
for(var i in seriesName) {
var visible = false;
var showInLegend = false;
var da = [];
for(var j in datas[i]) {
da.push(datas[i][j][1]);
}
if(Math.max.apply(null,da) > 0){
visible = true;//某些图例是否显示灰色
showInLegend = true;//是否显示某些图例
}
series.push({
type: 'column',
name: seriesName[i],
data: datas[i],
yAxis: 1,
visible: visible,
showInLegend : showInLegend,
dataGrouping: {
units: groupingUnits
}
})
}
return series;
}