그것은 단지 Highcharts 생성자 옵션을 사용하여 수행 할 수 없습니다.
(function(H) {
var merge = H.merge;
H.wrap(H.Legend.prototype, 'getAllItems', function() {
var allItems = [],
chart = this.chart,
options = this.options,
legendID = options.legendID;
H.each(chart.series, function(series) {
if (series) {
var seriesOptions = series.options;
// use points or series for the legend item depending on legendType
if (!isNaN(legendID) && (seriesOptions.legendID === legendID)) {
allItems = allItems.concat(
series.legendItems ||
(seriesOptions.legendType === 'point' ?
series.data :
series)
);
}
}
});
return allItems;
});
H.wrap(H.Chart.prototype, 'render', function(p) {
var chart = this,
chartOptions = chart.options;
chart.firstLegend = new H.Legend(chart, merge(chartOptions.legend, chartOptions.firstLegend, {
legendID: 0
}));
chart.secondLegend = new H.Legend(chart, merge(chartOptions.legend, chartOptions.secondLegend, {
legendID: 1
}));
p.call(this);
});
H.wrap(H.Chart.prototype, 'redraw', function(p, r, a) {
var chart = this;
p.call(chart, r, a);
chart.firstLegend.render();
chart.secondLegend.render();
});
H.wrap(H.Legend.prototype, 'positionItem', function(p, item) {
p.call(this, item);
});
})(Highcharts);
Highcharts 옵션 :
Highcharts.chart('container', {
chart: {
marginRight: 350 // create some space for the legend
},
legend: {
verticalAlign: 'middle',
width: 300,
align: 'right'
},
firstLegend: {
y: -25
},
secondLegend: {
y: 25
},
series: [{
data: [5, 6, 7],
legendID: 0,
}, {
data: [2, 3, 1],
legendID: 0,
},
(...)
{
data: [1, 8, 2],
legendID: 1
}, {
data: [3, 2],
legendID: 1
},
(...)
]
});
라이브 데모 :이 http://jsfiddle.net/kkulig/r70fwasr/
이 코드가 될 수 있습니다 당신은 몇 가지 핵심 기능 포장 에 의해 모양과 행동의 종류를 얻을 수 있습니다 최적화되어 2 개 이상의 범례에서 작동합니다.
나는 그럴 수 없다고 생각합니다. [여기] (https://stackoverflow.com/questions/46662883/is-it-possible-to-insert-a-break-in-the-high-charts-legend)/46665915 # 46665915) – Core972