【问题标题】:HighCharts - Single legend for two columns in a Stack Column chartHighCharts - 堆栈柱形图中两列的单个图例
【发布时间】:2021-05-03 09:58:23
【问题描述】:

我在堆积柱形图中有四个堆栈:“一个已完成”、“一个待处理”、“两个已完成”、“两个待处理”。

默认情况下,这些堆栈有四个图例。

我想要的是有两个图例:“一”和“二”。是否可以使用 Highcharts?

编辑: 添加了代码。一些文本/逻辑被删除。大部分样式都是我在 Internet 上找到的。

Highcharts.chart('', {
    chart: {
        type: 'column',
    },
    title: {
        text: '',
    },
    xAxis: {
        categories: c,
        labels: {
            y: 40
        }
    },
    yAxis: {
        min: 0,
        title: {
            text: ''
        },
        stackLabels: {
            enabled: true,
            verticalAlign: 'bottom',
            crop: false,
            overflow: 'none',
            y: 20,
            formatter: function () {
                return this.stack
            },
            style: {
                fontSize: '9px',
                color: (
                    Highcharts.defaultOptions.title.style &&
                    Highcharts.defaultOptions.title.style.color
                ) || 'gray'
            }
        }
    },
    credits: {
        enabled: false
    },
    legend: {
        align: 'right',
        x: -30,
        verticalAlign: 'top',
        y: 25,
        floating: true,
        backgroundColor: Highcharts.defaultOptions.legend.backgroundColor || 'white',
        borderColor: '#CCC',
        borderWidth: 1,
        shadow: false
    },
    tooltip: {
        formatter: function () {
            //custom logic
        }
    },
    plotOptions: {
        column: {
            stacking: 'normal',
            dataLabels: {
                enabled: true
            }
        },
        series: {
            cursor: 'pointer',
            events: {
                click: function (event) {
                    //custom click to filter logic
                }
            }
        }
    },
    series: [{
        name: 'One Pending',
        data: one_series_pending,
        color: '#7cb5ec',
        stack: 'Pending'
    }, {
        name: 'One Completed',
        data: one_series_completed,
        color: '#7cb5ec',
        stack: 'Completed'
    }, {
        name: 'Two Pending',
        data: two_series_pending,
        color: '#434348',
        stack: 'Pending'
    }, {
        name: 'Two Completed',
        data: two_series_completed,
        color: '#434348',
        stack: 'Completed'
    }]
});

示例图表: 我想要相同颜色的单个图例(两个堆栈)

【问题讨论】:

    标签: highcharts


    【解决方案1】:

    您可以使用linkedTo 属性将一个系列与另一个系列链接,并为其创建一个图例项。

        series: [{
            name: 'One Pending',
            data: [9, 5],
            color: '#7cb5ec',
            stack: 'Pending'
        }, {
            name: 'One Completed',
            data: [6, 2],
            color: '#7cb5ec',
            stack: 'Completed',
            linkedTo: 0
        }, {
            name: 'Two Pending',
            data: [35, 5],
            color: '#434348',
            stack: 'Pending'
        }, {
            name: 'Two Completed',
            data: [3, 0],
            color: '#434348',
            stack: 'Completed',
            linkedTo: 2
        }]
    

    现场演示: http://jsfiddle.net/BlackLabel/eh5m10q9/

    API 参考: https://api.highcharts.com/highcharts/series.column.linkedTo

    【讨论】:

    • 已链接。但是,我的传说现在是“一个待定”和“两个待定”。它们的功能相同(单击/悬停删除/突出显示单行)。是否可以有一个图例“一个”,点击它会删除“一个待处理”以及“一个已完成”
    • 嗨@Arpit Choudhary,对不起-我的错误,您需要在linkedTo 属性中使用id。示例:jsfiddle.net/BlackLabel/s8mj63eo
    • 对于工具提示,现在我使用名称 + 堆栈来获取信息,并在名称中使用 One/Two,因为我在堆栈中有 Completed/Pending 信息。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多