【发布时间】:2019-10-29 18:59:14
【问题描述】:
我正在尝试在 dcjs 中创建堆栈条形图。 dcjs 的堆栈条示例非常清楚,条形图与堆栈的巨大区别在于堆栈功能。堆栈函数将同一组作为输入,它可以将第三个参数作为函数,该函数决定它必须拆分哪个值。我宁愿用一个维度来拆分整个条形图。
假设以下数据点是这样的
data = [
{activity:"A1",time_taken:10,activity_group:"Master A"},
{activity:"A2",time_taken:20,activity_group:"Master B"},
{activity:"A1",time_taken:30,activity_group:"Master C"},
{activity:"A2",time_taken:15,activity_group:"Master D"}
]
我希望 x 轴上的活动组按其在 y 轴上所用时间的活动进行拆分,如下所示:
我如何做到这一点?
【问题讨论】:
-
“分割整个条形图”的意思是希望每个堆叠的条形图加起来占 Y 轴的 100%?
-
是的,我想按自己的单位添加它们,而不是使其达到 100%。如果你能看到这个链接pasteboard.co/IEstrBP.png 这表明了我想要的。
-
你想让它们像这样单独着色吗? dc.js 通常为每个“堆栈”着色一种颜色,因此 Master A 和 Master B 会说是蓝色,Master C 和 Master D 是橙色。在 dc.js 中,每个 X 值的堆栈数必须相同,但您可以通过将任何额外内容归零来解决此问题。如果您想要单独的着色,您可以将每个值放入自己的堆栈中,只要您将域的其余部分归零即可。有很多方法可以做到这一点,不知道你想做什么。
-
我真的不关心图表的颜色,我对 dc.js 创建的内容感到满意。我想知道如何将活动组之类的维度一分为二来拆分数据。我不确定这种方法。我可以想象有一个维度活动并使用该创建组,它现在给出了 time_taken 的总和,我如何将其拆分到 activity_group ?
-
请参考我的 jsfiddle jsfiddle.net/goxrt27q 这里我已经设置了相同的设置,我只需要显示按其活动组拆分的每个活动