美文网首页R语言R语言初学
R语言绘图(ggplot2、ggpubr)从入门到精通05--柱

R语言绘图(ggplot2、ggpubr)从入门到精通05--柱

作者: 生信师兄 | 来源:发表于2021-05-30 22:04 被阅读0次

    本系列课程要求大家有一定的R语言基础,对于完全零基础的同学,建议去听一下师兄的《生信必备技巧之——R语言基础教程》。本课程将从最基本的绘图开始讲解,深入浅出的带大家理解和运用强大而灵活的ggplot2包。内容包括如何利用ggplot2绘制散点图、线图、柱状图、添加注解、修改坐标轴和图例等。

    本次课程所用的配套书籍是:《R Graphic Cookbooks》

    除了以上的基本图形外,师兄还会给大家讲解箱线图、提琴图、热图、火山图、气泡图、桑基图、PCA图等各种常用的生信图形的绘制,还不赶紧加入收藏夹,跟着师兄慢慢学起来吧!

    第二章:柱状图深入探究

    • 分组柱状图
    #######################
    ## 分组柱状图
    library(gcookbook) # 包内含有需要的数据;
    cabbage_exp <- cabbage_exp
    ggplot(cabbage_exp,aes(Date, Weight, fill = Cultivar)) + 
      geom_bar(position = "dodge",stat = "identity",color = "black")
    
    ggplot(cabbage_exp,aes(Date, Weight, fill = Cultivar)) + 
      geom_bar(stat = "identity")  # 默认的position = "stack";
    
    # 此外,除了fill可以指定分组变量,color、linestyle也可以指定;
    ggplot(cabbage_exp,aes(Date, Weight, color = Cultivar)) + 
      geom_bar(position = "dodge",stat = "identity")
    
    # 请注意,如果类别变量的组合有任何缺失,则该栏将缺失,相邻的栏将扩展以填充该空间。
    ce = cabbage_exp[1:5,]
    
    ggplot(ce,aes(Date, Weight, fill = Cultivar)) + 
      geom_bar(position = "dodge",stat = "identity",color = "black") +
      scale_fill_brewer(palette = "Pastel1")
    
    # 实际情况下确实存在有一种类别没有对应的y值,此时可以使用NA或者0代替;
    ce_NA <- cabbage_exp
    ce_NA$Weight[6] <- 0
    
    ggplot(ce_NA,aes(Date, Weight, fill = Cultivar)) + 
      geom_bar(position = "dodge",stat = "identity",color = "black") +
      scale_fill_brewer(palette = "Pastel1")
    
    • 修改颜色技巧补充:
    #######################
    ## 修改颜色的技巧:
    
    library(gcookbook) 
    upc <-subset(uspopchange, rank(Change)>40) 
    upc
    
    ggplot(upc, aes(x=Abb, y=Change, fill=Region)) + geom_bar(stat="identity")
    
    # 此示例还使用reorder()函数,将条形按其高度进行排序; 
    ggplot(upc, aes(x=reorder(Abb, Change), y=Change, fill = Region)) + 
      geom_bar(stat="identity", color="black") + 
      scale_fill_manual(values=c("#669933", "#FFCC66")) + 
      xlab("State")
    
    #######################
    ## 正负两极不同的着色:
    csub <- subset(climate, Source == "Berkeley" & Year >= 1900) 
    
    # 思路:颜色根据正负数来填充?怎么识别正负数呢?
    # 只能新建一个字段:该字段描述了正和负;
    # 指定fill为该字段;
    csub$pos <- csub$Anomaly10y >= 0 
    csub
    
    ggplot(csub, aes(x=Year, y=Anomaly10y, fill=pos))+
      geom_bar(stat="identity", position="identity")
    
    
    # 使用scale_fill_manual()修改颜色;guide = False参数去掉图例
    ggplot(csub, aes(x=Year, y=Anomaly10y, fill=pos)) + 
      geom_bar(stat="identity", position="identity",color="black", size=0.25)+ 
      scale_fill_manual(values=c("#CCEEFF", "#FFDDDD"), guide=FALSE)
    

    往期文章

    1. R语言绘图(ggplot2、ggpurb)从入门到精通01--课程介绍
    2. R语言绘图(ggplot2、ggpurb)从入门到精通02--柱状图和直方图
    3. R语言绘图(ggplot2、ggpurb)从入门到精通03--箱式图和函数图像
    4. R语言绘图(ggplot2、ggpurb)从入门到精通04--柱状图美化之调色

    相关文章

      网友评论

        本文标题:R语言绘图(ggplot2、ggpubr)从入门到精通05--柱

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