在 highcharts 中是否可以在垂直堆叠的两列中显示图例?
我正在尝试找出显示图例项目的最佳方式,目前我们的图例项目都堆叠在一起。
图表上最多有 4 个系列。
我不太确定如何处理这个问题,我看到了 useHTML 的选项,但是我似乎找不到任何关于如何处理 HTML 的示例。
http://jsbin.com/oyicuc/9/edit
任何建议都会非常有帮助,谢谢。
在 highcharts 中是否可以在垂直堆叠的两列中显示图例?
我正在尝试找出显示图例项目的最佳方式,目前我们的图例项目都堆叠在一起。
图表上最多有 4 个系列。
我不太确定如何处理这个问题,我看到了 useHTML 的选项,但是我似乎找不到任何关于如何处理 HTML 的示例。
http://jsbin.com/oyicuc/9/edit
任何建议都会非常有帮助,谢谢。
您是否尝试过使用 itemWidth 参数?
请看一下
http://jsfiddle.net/B9L2b/1266/
legend: {
width: 200,
itemWidth: 100
},
http://api.highcharts.com/highcharts#legend.itemWidth
编辑:
width:600,
itemWidth:300,
itemStyle: {
width:280
}
function renderElements() {
if (this.legend) {
this.legend.destroy();
}
//distance between 2 elements
let itemDistance = this.legend.options.itemDistance;
//the biggest element
let maxItemWidth = this.legend.maxItemWidth;
//make the width of the legend in the size of 2 largest elements +
//distance
let nextLegendWidth = (maxItemWidth * 2) + itemDistance;
//container width
let boxWidth = this.plotBox.width;
//if the length of the 2 largest elements + the distance between them
//is less than the width of container, we make 1 row, else
//set legend width 2 max elements + distance between
if (boxWidth < nextLegendWidth) {
this.legend.options.width = maxItemWidth;
} else {
this.legend.options.width = nextLegendWidth;
}
this.render()
}
chart: {
events: {
load: renderElements,
redraw: renderElements
}
}
也许您可以使用图例的“labelFormater”。
http://api.highcharts.com/highcharts#legend.labelFormatter
然后您可以创建一个表格并按照您的意愿排列图例文本。
查看文档页面上的示例。