所以我在单个HighCharts Treemap图表中使用了6个系列,每个系列都是自己的,较小的树地图。我无法让该系列的每个名称出现在传奇中,因为ShowInlegend属性是数据属性的级别。
我尝试了两种不同的配置。第一:系列设置为我的ChartData变量,看起来像: [{{ 名称:钥匙, 堆栈:钥匙, id:键, showinlegend:是的, 颜色:颜色[键], 数据:切成薄片 },, {...}]等等。这为我提供了一个单一的三纲图表,每个系列都在上一个系列的下方,也就是它们彼此堆叠在一起。
如果我将它们全部组合到一个单个数据阵列中,我可以获得我要寻找的正确图表格式,每个单独的系列均按颜色/父级分组。这是使用无数据的数据点完成的,例如:{ 姓名, ID, Showinlegend, 颜色}
,其他每个点将是: { 姓名 父母 价值 }
然后将这个大数据阵列提供给看起来像:[{{ 类型:" treemap", layoutalgorithm:"平方", 数据:从上方的数据阵列,}]
再次,我希望图表是多个树地图,而不是另一个堵塞。但是我也需要传奇来显示所有这些系列的名称
您可以使用非正式的legendType: 'point'
属性,并在afterGetAllItems
传奇事件中删除不必要的元素:
var H = Highcharts;
H.addEvent(H.Legend, 'afterGetAllItems', function(e) {
e.allItems.splice(2, 6);
});
H.chart('container', {
series: [{
legendType: 'point',
showInLegend: true,
...
}]
});
实时演示: https://jsfiddle.net/blacklabel/gp2qmvac/
API参考: https://api.highcharts.com/highcharts/series.treemap.showinlegend
docs: https://www.highcharts.com/docs/extgending-highcharts