为多个系列创建多个 Pie Highcharts
Create multiple Pie Highcharts for multiple series
我正在尝试使用 JSON 数据绘制图表。我的数据有多个系列。因为创建了 2 个相互重叠的饼图。有没有办法让我将多个高图绘制成彼此相邻的图表?
我的JSON,相互重叠的饼图的代码和工作示例:
let data = [{
"name": "cakes",
"data": [
[
"us",
149045
],
[
"es",
41746
],
[
"uk",
37640
],
[
"au",
16594
]
],
"marker": {
"symbol": "circle"
}
}, {
"name": "pie",
"data": [
[
"us",
128845
],
[
"es",
35752
],
[
"uk",
32246
],
[
"au",
14333
]
],
"marker": {
"symbol": "circle"
}
}]
Highcharts.chart('container', {
chart: {
type: 'pie',
zoomType: 'xy'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
// format: '{series.data[0]} <b>{point.percentage:.1f}%</b>'
}
},
},
series: data
});
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/data.js"></script>
<script src="https://code.highcharts.com/highcharts-more.js"></script>
<div id="container"></div>
如何让饼图并排放置而不是一个叠加?一份用于 cakes
一份用于 pies
?
您可以使用动态计算的样式创建多个图表:
data.forEach(function(dataEl) {
const createdDiv = document.createElement('div');
createdDiv.style.display = 'inline-block';
createdDiv.style.width = 100 / data.length + '%'
mainContainer.appendChild(createdDiv);
Highcharts.chart(createdDiv, {
...,
series: [dataEl]
});
});
现场演示: https://jsfiddle.net/BlackLabel/jn4p2gq8/
或者每个系列动态计算 center
属性 的一张图表。
API参考:https://api.highcharts.com/highcharts/series.pie.center
我正在尝试使用 JSON 数据绘制图表。我的数据有多个系列。因为创建了 2 个相互重叠的饼图。有没有办法让我将多个高图绘制成彼此相邻的图表?
我的JSON,相互重叠的饼图的代码和工作示例:
let data = [{
"name": "cakes",
"data": [
[
"us",
149045
],
[
"es",
41746
],
[
"uk",
37640
],
[
"au",
16594
]
],
"marker": {
"symbol": "circle"
}
}, {
"name": "pie",
"data": [
[
"us",
128845
],
[
"es",
35752
],
[
"uk",
32246
],
[
"au",
14333
]
],
"marker": {
"symbol": "circle"
}
}]
Highcharts.chart('container', {
chart: {
type: 'pie',
zoomType: 'xy'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
// format: '{series.data[0]} <b>{point.percentage:.1f}%</b>'
}
},
},
series: data
});
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/data.js"></script>
<script src="https://code.highcharts.com/highcharts-more.js"></script>
<div id="container"></div>
如何让饼图并排放置而不是一个叠加?一份用于 cakes
一份用于 pies
?
您可以使用动态计算的样式创建多个图表:
data.forEach(function(dataEl) {
const createdDiv = document.createElement('div');
createdDiv.style.display = 'inline-block';
createdDiv.style.width = 100 / data.length + '%'
mainContainer.appendChild(createdDiv);
Highcharts.chart(createdDiv, {
...,
series: [dataEl]
});
});
现场演示: https://jsfiddle.net/BlackLabel/jn4p2gq8/
或者每个系列动态计算 center
属性 的一张图表。
API参考:https://api.highcharts.com/highcharts/series.pie.center