R中具有超过2个分类变量的热图

数据挖掘 r 可视化
2021-10-03 17:44:23

我有一个数据集,看起来像 -

Variable value year Quarter Location
A 48.235 2011 Q1 North
B 65.444 2011 Q2 North
C 77.453 2011 Q3 North
D 44.678 2011 Q4 North
A 88.542 2012 Q1 South
B 66.566 2012 Q2 South
C 55.443 2012 Q3 South
D 78.990 2012 Q4 South

任何人都可以帮我编写一个代码来生成具有超过 2 个分类变量的热图吗?我需要“变量”和“位置”在 y 轴上,“季度”和“年份”在 x 轴上。热图中数据的阴影应对应于“值”。

1个回答

这是可视化您提供的数据的一种方法。但是,我使用了一些自由和假设来创建这个情节。

首先,创建一个 year_quarter 变量,它简单地连接年份和季度以在 X 轴上显示时间。以下代码可以在 R 中执行此操作

year_quarter = paste(dat$year, dat$Quarter, sep="-")

现在,您拥有的数据集将如下所示:

> dat

Variable value year Quarter Location year_quarter 1 A 48.235 2011 Q1 North 2011-Q1 2 B 65.444 2011 Q2 North 2011-Q2 3 C 77.453 2011 Q3 North 2011-Q3 4 D 44.678 2011 Q4 North 2011-Q4 5 A 88.542 2012 Q1 South 2012-Q1 6 B 66.566 2012 Q2 South 2012-Q2 7 C 55.443 2012 Q3 South 2012-Q3 8 D 78.990 2012 Q4 South 2012-Q4

最后,使用ggplto2,您可以创建绘图,使颜色代表值,形状代表位置,大小代表变量。

这个简单的单线可以帮助您制作这样的情节:

p = ggplot(dat, aes(x = year_quarter, y = value, colour = value)) + geom_point(aes(shape = Location,size = Variable))

这是输出图的样子:

在此处输入图像描述

请注意,如果您希望根据位置和变量连接线,您也可以geom_line添加interaction