在具有多个系列的柱形图中隐藏特定的系列图例

时间:2020-08-04 19:41:36

标签: ruby-on-rails highcharts chartkick

我正在尝试使用Chartkick创建具有多个数据系列的图表。事实是,这两个集合在一年中的不同点表示相同的数据点,因此图例具有重复的标签。有没有办法按系列隐藏其中一个?

这是我的current chart的样子。 (左侧的条形代表年初,右侧的条形代表年底)。

这是我现在的图表代码:(出于测试目的,两个集合使用相同的数据哈希)

total_effort_data = [
            { name: "Academic", data: academic_hash, stack: "9/1" },
            { name: "Administrative", data: administrative_hash, stack: "9/1" },
            { name: "Clinical", data: clinical_hash, stack: "9/1" },
            { name: "Research", data: research_hash, stack: "9/1"} ,
    
            { name: "Academic", data: academic_hash, stack: "8/31" },
            { name: "Administrative", data: administrative_hash, stack: "8/31" },
            { name: "Clinical", data: clinical_hash, stack: "8/31" },
            { name: "Research", data: research_hash, stack: "8/31" }, ]
...
<%= column_chart total_effort_chart_path,
             stacked: true, legend: "top", suffix: "%", max: 100,
             colors: ["#FFDB80", "#F7A791", "#C8EA80", "#CAE9F4"] %>

此外,是否可以在每列下方的轴下方(年份范围之上)添加“ 9/1”和“ 8/31”标签?

1 个答案:

答案 0 :(得分:0)

使用showInLegendlinkedTo属性:

    series: [..., {
        data: [3, 2, 1],
        showInLegend: false,
        linkedTo: 'series1'
    }]

它可能看起来像下面的代码:

total_effort_data = [
        { name: "Academic", data: academic_hash, stack: "9/1", id: "academic" },
        ...,

        { name: "Academic", data: academic_hash, stack: "8/31", showInLegend: false, linkedTo: "academic" },
        ...
]

实时演示: http://jsfiddle.net/BlackLabel/ocxyfv42/

API参考:

https://api.highcharts.com/highcharts/series.column.showInLegend

https://api.highcharts.com/highcharts/series.column.linkedTo