Vega-lite聚合加入

时间:2019-04-02 20:12:22

标签: vega-lite

我有一个具有以下基本结构的数据集:

response_id | question_id | question_type | question_key | question_value

1           |           1 | demographic   | age          | 23
1           |           2 | value         | enjoyment    | 0.75
1           |           3 | value         | speed        | 0.95
1           |           4 | demographic   | gender       | o
2           |           5 | demographic   | age          | 55
2           |           6 | value         | enjoyment    | 0.2
2           |           7 | value         | speed        | 0.15
2           |           8 | demographic   | gender       | m
...

我需要制作各种图表,以不同的方式比较这些响应,并汇总到常见的response_id上。

我如何加入response_id,然后根据question_type AND question_value对的查找进行过滤和汇总?

图表1

一个简单图表的示例是水平条形图,该条形图在Y轴上显示question_value的平均值,并在question_type = 'value'上进行过滤,并为每个唯一的question_key加上条形。

因此,question_key = 'enjoyment'有一个酒吧,question_key = 'speed'有一个酒吧。可能会有不同数量的question_keys会动态变化,即speedenjoyment并没有预先确定和已知,因此图表可能有不同数量的柱线。

图表2

现在,我想创建一个新的图表,该图表以图表1为中心。上面图表中的每个条形图在question_type = 'demographic' AND question_key = 'gender'上分成两个不同的条形图。因此,对于上方的每个小节,gender='m'gender='o'都有两个小节。所以我会有类似enjoyment,menjoyment,ospeed,mspeed,o的条。所有gender='m'将是一种颜色,所有gender='o'将是另一种颜色。

图表3

接下来,我可能想再次将图表1旋转到上方,但超过年龄,因此question_type='demographic' AND question_key='age',然后将年龄结果划分为10年。所以我有enjoyment,age=1-10enjoyment,age=11-20enjoyment,age=21-30 ... speed,age=1-10speed,age=11-20 ...,等等。

这些枢轴是固定的,因此,我将始终使用question_type='demographic' AND question_key='gender'来制作具有过滤器确切值的图表,但是question_type='value'键不是固定的。

1 个答案:

答案 0 :(得分:0)

我认为您需要一个条形图,一个分组的条形图和一个多面分组的条形图。了解Vega-Lite中的facet运算符,以及如何使用它来创建所需的图表。