[英]Plot only upper triangle of the matrix using ggplot2
我有一个已经切入上三角形的矩阵:
eSim <- c(1,1,-1,-1,1,1,-1,-1,-1,-1,1,1,-1,-1,1,1)
dim(eSim) <- c(4,4)
rownames(eSim)=c("PosLong\n1200", "PosLong\n1800", "Neglong\n1200", "Neglong\n1800")
colnames(eSim)=c("PosLong\n1200", "PosLong\n1800", "Neglong\n1200", "Neglong\n1800")
# Get upper triangle of the correlation matrix
get_upper_tri <- function(cormat){
cormat[lower.tri(cormat)]<- NA
return(cormat)
}
eSim_upper <- get_upper_tri(eSim)
melted_eSim_upper <- melt(eSim_upper, na.rm = TRUE)
这是我绘制这个矩阵的代码
ggplot(data = melted_eSim_upper, aes(Var2, Var1, fill = as.factor(value)))+
geom_tile(color = "black", size=0.8)+
scale_fill_manual(values=c("#8DD3C7", "#FB8072"))+
theme_minimal()+
theme(axis.text.x = element_text(angle = 45, vjust = 1,
size = 12, hjust = 1))+
theme(axis.text.y = element_text(angle = 45, vjust = 1,
size = 12, hjust = 1))+
coord_fixed()+
theme(axis.title.x = element_blank(),
axis.title.y = element_blank())+
theme(panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.border = element_blank())+
theme(axis.text.y = element_text(margin = margin(t = 0, r = 0, b = 0, l = 50)))
结果:
我有几个问题要实现我的最终目标:
limits = rev
。guide = guide_axis(angle = 45)
而不是对主题设置进行微观管理。library(ggplot2)
eSim <- c(1,1,-1,-1,1,1,-1,-1,-1,-1,1,1,-1,-1,1,1)
dim(eSim) <- c(4,4)
rownames(eSim)=c("PosLong\n1200", "PosLong\n1800", "Neglong\n1200", "Neglong\n1800")
colnames(eSim)=c("PosLong\n1200", "PosLong\n1800", "Neglong\n1200", "Neglong\n1800")
# Get upper triangle of the correlation matrix
get_upper_tri <- function(cormat){
cormat[lower.tri(cormat)]<- NA
return(cormat)
}
eSim_upper <- get_upper_tri(eSim)
melted_eSim_upper <- reshape2::melt(eSim_upper, na.rm = TRUE)
ggplot(data = melted_eSim_upper, aes(Var2, Var1, fill = as.factor(value)))+
geom_tile(color = "black", size=0.8)+
scale_fill_manual(values=c("#8DD3C7", "#FB8072"))+
scale_y_discrete(limits = rev, guide = guide_axis(angle = 45)) +
theme_minimal()+
theme(axis.text.x = element_text(angle = 45, vjust = 1,
size = 12, hjust = 1))+
theme(axis.text.y = element_text(size = 12))+
coord_fixed()+
labs(x = NULL, y = NULL) +
theme(panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.border = element_blank())
由代表 package (v2.0.1) 于 2022 年 9 月 19 日创建
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.