【问题标题】:Create multiple Pie Highcharts for multiple series为多个系列创建多个 Pie Highcharts
【发布时间】:2021-04-01 02:33:14
【问题描述】:

我正在尝试使用 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

【问题讨论】:

  • 喜欢this ?
  • @Swati,感谢您的回复。当有 2 个系列时,这可以正常工作。如果我有超过 2 个怎么办?

标签: javascript jquery ecmascript-6 highcharts pie-chart


【解决方案1】:

您可以使用动态计算的样式创建多个图表:

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

【讨论】:

    猜你喜欢
    • 2013-05-25
    • 2019-12-08
    • 1970-01-01
    • 2013-10-16
    • 2013-08-07
    • 1970-01-01
    • 2013-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多