R 热图绘制如何以图形方式对变量进行聚类
我有一个案例形式的分类变量数据框架,由三个变量(即颜色、形状和大小)组成。数据帧的一个示例如下:R 热图绘制如何以图形方式对变量进行聚类,r,ggplot2,heatmap,R,Ggplot2,Heatmap,我有一个案例形式的分类变量数据框架,由三个变量(即颜色、形状和大小)组成。数据帧的一个示例如下: Color Shape Size Freq 1 Yellow Square Big 10 2 Yellow Square Medium 6 3 Yellow Square Small 3 4 Yellow Triangle Big 4 5 Yellow Triangle Medium 6 6 Yellow Triangle
Color Shape Size Freq
1 Yellow Square Big 10
2 Yellow Square Medium 6
3 Yellow Square Small 3
4 Yellow Triangle Big 4
5 Yellow Triangle Medium 6
6 Yellow Triangle Small 8
7 Red Square Big 2
8 Red Square Medium 6
9 Red Square Small 5
10Red Triangle Big 12
.......
我已使用以下代码创建了热图:
library(dplyr)
library(ggplot2)
df_max <- df %>%
group_by(Color, Shape) %>%
slice(which.max(Freq))
head(df_max)
# Source: local data frame [4 x 4]
# Groups: Color, Shape [4]
#
# Color Shape Size Freq
# (chr) (chr) (chr) (int)
# 1 Red Square Medium 6
# 2 Red Triangle Big 12
# 3 Yellow Square Big 10
# 4 Yellow Triangle Small 8
ggplot(df_max, aes(x = Color, y = Shape, fill = Size)) +
geom_tile()
库(dplyr)
图书馆(GG2)
df_最大值%
分组依据(颜色、形状)%>%
切片(哪个.max(频率))
水头(df_最大值)
#来源:本地数据帧[4 x 4]
#组:颜色、形状[4]
#
#颜色形状大小频率
#(chr)(chr)(chr)(内部)
#1红场中6号
#2红色三角形大12
#3黄色方形大10
#4黄色三角形小8
ggplot(df_max,aes(x=颜色,y=形状,填充=大小))+
geom_瓷砖()
因此:
然而,热图不够清晰,为了清晰起见,我需要尽可能多地将颜色分组。例如,红色(大小)分组比其他颜色更接近。我尝试在切片之前按大小排列数据帧,但没有令人满意的结果,因此有人能提供关于如何排列变量以获得最终结果的任何想法吗?我无法提供使用ggplot2的任何建议,但您可以检查(如果向下拖动,请查看第九个热图)这演示了如何对字符矩阵进行聚类。@Zuguang Gu感谢您的提示。我已经浏览了您的文档,该包似乎可以很好地处理数字或字符矩阵,但是像上面这样的列联表怎么样?我不知道如何使用CompleteHeatmap,如果我需要将数据帧转换为矩阵,输入是矩阵,但您可以使用Reformae2软件包中的
acast
将数据帧转换为矩阵。我无法提供使用ggplot2的任何建议,但您可以检查(如果向下拖动,请查看第9个热图)这演示了如何对字符矩阵进行聚类。@Zuguang Gu感谢您的提示。我已经浏览了您的文档,该包似乎可以很好地处理数字或字符矩阵,但是像上面这样的列联表怎么样?我不知道如何使用CompleHeatmap,如果我需要将数据帧转换为矩阵,则输入是矩阵,但您可以使用Reformae2软件包中的acast
将数据帧转换为矩阵。