R语言绘图(ggplot2、ggpubr)从入门到精通02--柱状图和直方图

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

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

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

第一章:快速探索数据

  1. 柱状图:

    • 基础的可以用barplot来画:

      barplot(BOD$demand,names.arg = BOD$Time)
      
      # 有时“条形图”指的是一个图表,其中的条形图代表了每个类别的案例数。
      # 这类似于直方图,但是x轴是离散的,而不是连续的。这个时候就要用table函数生成每个类别的计数;
      barplot(table(mtcars$cyl))
      
      条形01.png

      条形02.png
    • 使用qplot

      # 使用qplot()
      qplot(mtcars$cyl)
      qplot(factor(mtcars$cyl))
      
条形03.png
  • 大家能否想想ggplot该怎么画同样的图呢?

    # stat="bin"(默认):柱高为各个分类数目;stat="identity"柱高分类所占比例。
    ggplot(BOD,aes(factor(Time),demand)) + geom_bar(stat = "identity")
    
    ggplot(mtcars,aes(factor(cyl))) + geom_bar()
    
条形05.png
条形06.png
条形07.png
  1. 直方图:

    直方图是数值数据分布的精确图形表示。 这是一个连续变量的概率分布的估计,并且被卡尔·皮尔逊(Karl Pearson)首先引入。

    它是一种条形图。 为了构建直方图,第一步是将值的范围分段,即将整个值的范围分成一系列间隔,然后计算每个间隔中有多少值。 这些值通常被指定为连续的,不重叠的变量间隔。 间隔必须相邻,并且通常是(但不是必须的)相等的大小。

    • 基础方法:hist函数:
      hist(mtcars$mpg)
      
      hist(mtcars$mpg,breaks = 10)  # breaks参数指定组数;
    
直方图01.png
  • 使用qplot
  #qplot()
  qplot(mpg,data = mtcars, binwidth = 4) # binwidth参数指定组距;
直方图02.png
  • 使用ggplot2
    #等价于
    ggplot(data = mtcars,aes(x = mpg)) + geom_histogram(binwidth = 2)
直方图03.png

往期链接

创作不易:各位的点赞和转发是小编继续坚持的动力哦!咱们下期再见

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作者:严涛浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源 ggplot2学习笔记之图...
    Dylan的迪阅读 7,602评论 0 6
  • ggplot2包的目的是提供一个全面的、基于语法的、连贯一致的图形生成系统,允许用户创建新颖的、有创新性的数据可视...
    井底蛙蛙呱呱呱阅读 8,691评论 0 11
  • 以三个数据集解释ggplot2的使用。第一个是lattice包中的singer数据集,它包括纽约合唱团歌手的高度和...
    王诗翔阅读 18,190评论 8 54
  • 写在前面 ggplot2 是一个功能强大且灵活的R包 ,由Hadley Wickham 编写,其用于生成优雅的图...
    Boer223阅读 28,374评论 0 67
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,721评论 28 53