我有一个基本结构如下的数据集:
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_key进行question_type = 'value'过滤。
因此,将有一个为question_key = 'enjoyment'和question_key = 'speed'的栏。可以有不同数量的可能question_keys,它们将动态变化,即speed和enjoyment不是固定的,并且事先是已知的,因此图表可能具有不同数量的条形图。
图表2
现在我想创建一个新的图表,它在图表1上旋转。上面的图表中的每个条形图通过question_type = 'demographic' AND question_key = 'gender'被分成两个不同的条形图。因此,对于上面的每个条形图,现在将有两个用于gender='m'和gender='o'的条形图。所以我有像enjoyment,m,enjoyment,o,speed,m,speed,o这样的条形图。所有的gender='m'将是一种颜色,而所有的gender='o'将是另一种颜色。
图表3
下一步,我可能想要再次旋转上面的图表1,但随着年龄的增长,因此question_type='demographic' AND question_key='age',然后将年龄结果放入10年箱中。所以我有enjoyment,age=1-10,enjoyment,age=11-20,enjoyment,age=21-30 ... speed,age=1-10,speed,age=11-20...等等。
这些透视表是固定的,所以我将始终使用question_type='demographic' AND question_key='gender'绘制一个图表,其中包含筛选器的确切值,但是question_type='value'键不是固定的。
发布于 2019-06-09 11:47:05
我认为您需要一个条形图、一个分组条形图和一个分面的分组条形图。让我们来看看Vega-Lite中的facet操作符,以及如何使用它来创建所需的图表。
https://stackoverflow.com/questions/55482849
复制相似问题