我有一个由客户组成的数据集,分发到不同的完整国家和客户级别。每个国家/级别组合都有一个大小和风险属性。 risk属性表示问题有多大,size属性表示相关人口的大小。
示例数据(R):http://www.r-fiddle.org/#/fiddle?id=KVMCtmz8&version=12
您如何可视化此数据以显示所有4个维度(从概念上讲,不一定是编码方式)?
我最初的想法是创建一个二维表格/格子(国家x级别),其大小为气泡,风险为色标,但我担心泡沫图的有效性。
编辑:代码链接修正
答案 0 :(得分:0)
我会将答案与 为您的数据做的事情分开 - 这完全取决于您的数据中的趋势以及您尝试传达的信息。
使用ggplot2
,geom_point
参数可以捕获使用aes()
对象汇总数据的方式。这些是:
这提供了一个潜在的 8 维度,您可以在其上绘制数据图表。其中一些,特别是颜色和填充,你只能与正确的形状结合使用(pch = 21 - 25,见here)。同样,shape
无法映射到连续变量,因此您也受限制。
那就是说,我永远不会建议一次使用所有这些,因为你的图表很难解释,但理论上你可以。
示例代码
ggplot(df, aes(x = size, y = risk)) + geom_point(aes(color = country, size = custlevel))
对于离散变量,您可以拉出的第二个杠杆是刻面。这可以为您的数据添加(理论上,不推荐)无限维,具体取决于您需要的子部分数量。例如:
ggplot(df, aes(x = size, y = risk)) + geom_point(aes(color = country)) +
facet_wrap(~custlevel)
您可以使用facet_wrap
或facet_grid
,在参数中添加其他维度(即facet_wrap(~custlevel + country)
或facet_wrap(~custlevel + country + size)
同样,由于降低了可读性,因此不建议这样做。但是,这些都是您可以使用的工具。