UpSet plots(或称为UpSet charts)是一种用于可视化集合之间的交集和元素分布的图表类型。ChatGPT将翻其译成中文为 "交集图"、"交叉图" 或者 "集合交集图"。
这种图表特别适用于展示多个集合之间的重叠关系,例如在生物学、社交网络分析、市场调查等领域中经常出现的情况。UpSet plots通过直观地显示集合的共同元素数量来帮助理解这些复杂的交互关系。
UpSet plots的优势在于它们可以同时展示多个集合之间的重叠关系,帮助观察者快速识别哪些元素存在于哪些集合中,以及它们之间的相对频率。这种图表形式简单清晰,易于理解,为分析和解释集合数据提供了有力的工具,是复杂维恩图的有效替代。
重点关注图底部大块的点线区域,这个区域用来显示不同集合之间的元素交集。每个小点代表一个元素,而小点的位置表示这个元素出现在哪两个集合中。如果在某个交集中存在这个元素,就会对应一个点,如果没有即为空。
要在Tableau中实现UpSet plots,需要构建三个工作簿,两个条形图,一个点线图,在仪表板中进行拼接。我们以WOW2023年Week44的案例作为基础,简单讲解一下图表的制作。
如下图所示,此图表反应了不同子类别商品组合的购买情况(只保留类别为Furniture)。上方柱状图,每个柱子代表一种商品购买组合的客户数量。右侧条形图,每一个条形代表一个子类别的总购买人数,点线图纵向看代表每种购买组合,横向看代表这个子类别出现在哪种购买组合中。
如下图所示,在Furniture这个类别中,已知只有四个子类别,每个顾客都可能采取不同的购买组合,制作这个图表的关键就是如何计算出购买组合。
其思路就是先对每一笔交易都标记出购买的子类别,然后在客户级别将购买标记组合成购买组合作为维度使用。此处只需要一个计算字段就可以完成购买组合的计算。
购买组合:
{ FIXED [Customer Name]: MAX(IIF([Sub-Category]="Furnishings","F",""))}
+
{ FIXED [Customer Name]: MAX(IIF([Sub-Category]="Chairs","C",""))}
+
{ FIXED [Customer Name]: MAX(IIF([Sub-Category]="Tables","T",""))}
+
{ FIXED [Customer Name]: MAX(IIF([Sub-Category]="Bookcases","B",""))}
通过交叉表验证计算是否准确。
制作上部的柱状图比较简单,如下图所示。
制作底部条形图,也比较简单,如下图所示。
点线图的制作难度较高,需要通过占位符构造轴,完成点线的绘制。请根据下图,自行尝试。
最终在仪表板中拼接完成图表的最终版本。
整体来看,制作UpSet plots有一定难度。首先就是如何计算购买组合,也就是元素的交集,需要充分理解FIXED计算的原理。其次就是如何制作点线图,点与线是两种不同的图形元素,所以只能通过双轴的方式来实现,所以需要用占位字段构造两个轴。