2

我有一个堆叠的分组条形图,定义如下:

每个分组指的是一个单独的实体;每个堆栈都引用该实体上的数据子集;每个堆栈上有4个酒吧。

事情是这样的:每个堆栈在组和条形图中基本上是相同的。即使一个组中有 5 个堆栈,从技术上讲,总共只有 4 个柱。然而,在 Highcharts 中,一个系列的名称与它的分组方式无关。如果我有五十个名为“Bar 1”的系列,即使它们有不同的堆栈,我也会在图例中得到五十个“Bar 1”条目。

我想要的是每个条的单个图例/数据条目(例如“条 1”、“条 2”),而不是每个条每个堆栈的单个条目(例如“条 1 - 堆栈 1”、“条 1 - 堆栈2”、“条 1 - 堆栈 3”、“条 2 - 堆栈 1”,令人作呕)。

这可能吗?

(对于困惑:Highcharts 在分组/堆叠方面有点奇怪。虽然“条”是一组堆叠条

4

2 回答 2

3

这不会真正帮助您获得所需的最终结果,但这是我必须做的。

在图表中设置颜色并每次重复。

colors: [
                '#3d3d3d' ,
                '#3d3d3d' ,
                '#008000' ,
                '#008000' ,
                '#86B201' ,
                '#86B201' ,
                '#97cb00' ,
                '#97cb00' ,
                '#f79646' ,
                '#f79646' 
    ] 

只要您以所需的顺序输出图表,输出看起来就会相同。

第二步是禁用一半系列的图例(重复的系列)。

例如一个系列的样子:

{
    name: 'Locked',
    data: [1, 2, 3],
    stack: 'Subitem 1',
    showInLegend: false
}

这将导致一半重复的项目不会显示在您的图例中。但是,这也意味着您将无法通过单击图例中的项目来隐藏/显示项目(如果您禁用该功能,它不会混淆用户)。

希望有帮助。

于 2012-08-08T00:58:02.703 回答
2

解决方案 1

您可以组合数据而不是进行堆栈,然后使用格式化程序列出锁定、解锁和潜在类别。这是通过将附加数据添加到数据点然后访问它来this.point.locked完成的。有关使用您的数据的示例,请参阅更新的 jsfiddle 。

解决方案 2

使用圆环图显示您的数据。内部部分将是系列标识符,而外环将是锁定、解锁和潜在的计数。

解决方案 3

图例为图表而不是系列启用或禁用。因此,您可以禁用图例。将堆栈中的每个系列设置为某种颜色,然后使用点的单击事件来获取系列 id 并调用可以打开或关闭系列的函数hide()。在副标题中,您放置了诸如Click on Series to Hide之类的内容。然后您还必须添加另一个按钮来重置/取消隐藏任何隐藏的系列。

于 2012-05-21T21:24:58.863 回答