订购条形图

时间:2017-05-23 11:58:02

标签: dc.js

我正在考虑像下面的例子那样排序图表,背景颜色是从布尔值生成的,所以想要命名布尔值(真正的红色首先是),频率降序。 enter image description here

由于

1 个答案:

答案 0 :(得分:0)

我可以想到两种方法来实现这一目标:通过多值排序,或通过分组条形图。

多值排序

虽然chart.ordering()必须返回单个值,但您可以将多个值组合到单个排序值中。

假设您已经设置了小组,因此缩小的值包含字段boolfrequency,您可以生成一个按bool排序并{{1}排序的值第二:

frequency

这假设频率不高于1000.如果频率高于此值,您可以使用更大的乘数。

它还使用了一个技巧,当放入算术表达式时,布尔值将强制为1或0。

如果您的简化数据没有chart.ordering(function(kv) { return - (kv.value.bool * 1000 + kv.value.frequency); }); bool部分,您可以在常见问题解答中查看How do I reduce multiple values at once?。或者用示例数据更新您的问题,最好是小提琴或块。

分组栏

在您的示例中,看起来绿色条的数量与红条相同,因此实验性分组条特征也可能是合适的。

available in a PR绘制分组条形图。它的工作方式类似于堆叠条:您实际上将每个颜色的每个部分的数据分成几组,然后每个颜色都是每个组中的一个bin。

我不认为此功能支持按组内的值排序,但我认为因为视觉相似性而值得一提。