美文网首页good code R语言做图R-作图
R语言ggplot2画右三角方块热图的简单小例子

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

作者: 小明的数据分析笔记本 | 来源:发表于2021-07-07 08:37 被阅读0次
    还是这幅图
    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画右三角方块热图的简单小例子

        本文链接:https://www.haomeiwen.com/subject/upxnultx.html