我有一个堆叠的分组条形图,定义如下:
每个分组指的是一个单独的实体; 每个堆栈指的是该实体上的数据子集; 每个堆栈上都有4个条形。
事情是这样的:每个堆栈在组和条之间基本相同。即使分组中有5个堆叠,技术上仍然只有4个堆叠。然而,在Highcharts中,系列的名称与它的分组方式无关;如果我有50个名为“Bar 1”的系列,即使它们有不同的堆叠,我最终会在图例中找到50个“Bar 1”条目。
我想要的是每个条形图的单个图例/数据输入(例如“Bar 1”,“Bar 2”),而不是每个条形每个堆栈单个条目(例如“Bar 1 - Stack 1”,“Bar 1 - Stack 2“,”Bar 1 - Stack 3“,”Bar 2 - Stack 1“,ad nauseum)。
这可能吗?
(对于困惑:Highcharts在分组/堆叠方面有点奇怪。虽然'bar'是一组堆叠的条形
答案 0 :(得分:3)
这不会真正帮助你获得你想要的最终结果,但这是我必须要做的。
设置图表中的颜色并每次重复它们。
colors: [
'#3d3d3d' ,
'#3d3d3d' ,
'#008000' ,
'#008000' ,
'#86B201' ,
'#86B201' ,
'#97cb00' ,
'#97cb00' ,
'#f79646' ,
'#f79646'
]
只要您按照所需的顺序输出图表,输出看起来就一样。
第二步是禁用系列一半的图例(重复的图例)。
e.g。系列看起来像什么:
{
name: 'Locked',
data: [1, 2, 3],
stack: 'Subitem 1',
showInLegend: false
}
这将导致重复的一半项目不在您的图例中显示。但是,这也意味着您将无法通过单击图例中的项目来隐藏/显示项目(如果您disable that functionality它不会混淆用户)。
希望有所帮助。
答案 1 :(得分:2)
解决方案1
您可以组合数据而不是堆栈,然后使用格式化程序列出Locked,Unlocked和Potential类别。这是通过将附加数据添加到数据点然后通过this.point.locked
访问它来完成的。有关使用您的数据的示例,请参阅Updated jsfiddle。
解决方案2
使用Donut chart显示您的数据。内部部分是系列标识符,外部环将是锁定,解锁和潜在的计数。
解决方案3
对于不是系列的图表启用或禁用legend。因此,您可以禁用图例。将堆栈中的每个系列设置为某种颜色,然后使用点的click事件获取系列ID并调用可以打开或关闭系列hide()的函数。在副标题中,您可以输入点击要隐藏的系列之类的内容。然后你还需要添加另一个按钮来重置/取消隐藏任何隐藏的系列。