R语言ggplot2画右三角方块热图的简单小例子

还是这幅图
image.png

本来以为今天的推文可以重复出来的,但还是高估自己了,实现过程遇到了问题,暂时还不知道如何解决,后面想到办法再来介绍吧!

今天的推文先介绍右上角的方块热图实现办法吧!

首先是方块四周的灰色边框

这里使用到的是geom_tile()函数。把填充设置为白色,然后把边框线设置为灰色就可以达成这种效果

下面是一个简单小例子

示例数据

image.png

代码

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")
image.png
如果是画三角热图示例数据如下
image.png

这种是宽格式数据,读取数据然后转换为长格式

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)
image.png

接下来简单美化

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()
image.png

除了用方块的形状,我们还可以使用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")
image.png

今天的次条推文还是广告,这篇推文的示例数据和代码会放到次条推文的留言区

欢迎大家关注我的公众号
小明的数据分析笔记本

小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

你可能感兴趣的:(R语言ggplot2画右三角方块热图的简单小例子)