还是这幅图
本来以为今天的推文可以重复出来的,但还是高估自己了,实现过程遇到了问题,暂时还不知道如何解决,后面想到办法再来介绍吧!
今天的推文先介绍右上角的方块热图实现办法吧!
首先是方块四周的灰色边框
这里使用到的是geom_tile()
函数。把填充设置为白色,然后把边框线设置为灰色就可以达成这种效果
下面是一个简单小例子
示例数据
代码
library(readxl)
df5<-read_excel("Cor/exampledf.xlsx",
sheet = "Sheet5")
df5
library(ggplot2)
ggplot()+
geom_tile(data=df5,aes(x=x,y=y),
fill="white",color="grey")
如果是画三角热图示例数据如下
这种是宽格式数据,读取数据然后转换为长格式
library(dplyr)
df4<-readxl::read_excel("Cor/exampledf.xlsx",
sheet = "Sheet4")
df4 %>%
reshape2::melt(id.vars="x",variable.name="y") %>%
na.omit() -> dftmp
自定义x,y轴的顺序,通过改变因子水平来实现
dftmp$x<-factor(dftmp$x,
levels = paste0("X",1:13))
dftmp$y<-factor(dftmp$y,
levels = paste0("Y",1:13))
画图
ggplot()+
geom_tile(data=dftmp,aes(x,y),fill="white",color="grey")+
geom_point(data=dftmp,aes(x,y,size=abs(value),color=value),
shape=15)
接下来简单美化
ggplot()+
geom_tile(data=dftmp,aes(x,y),fill="white",color="grey")+
geom_point(data=dftmp,aes(x,y,size=abs(value),color=value),
shape=15)+
theme_minimal()+
theme(panel.grid = element_blank())+
scale_x_discrete(position = "top")+
scale_y_discrete(position = "right")+
labs(x=NULL,y=NULL)+
scale_colour_viridis_c()
除了用方块的形状,我们还可以使用ggstar
这个包中的其他形状,比如我们来一个心形
library(ggstar)
ggplot()+
geom_tile(data=dftmp,aes(x,y),fill="white",color="grey")+
geom_star(data=dftmp,aes(x,y,size=abs(value),fill=value),
starshape=16)+
theme_minimal()+
theme(panel.grid = element_blank())+
scale_x_discrete(position = "top")+
scale_y_discrete(position = "right")+
labs(x=NULL,y=NULL)+
scale_fill_gradient(low = "green",high = "red")
今天的次条推文还是广告,这篇推文的示例数据和代码会放到次条推文的留言区
欢迎大家关注我的公众号
小明的数据分析笔记本
小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!