• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    同等学历教学

    同等学历教学

    免费
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      同等学历教学

      同等学历教学

      免费
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      未分类

      • 首页
      • 博客
      • 未分类
      • R语言可视化—–ggplot2 核心概念

      R语言可视化—–ggplot2 核心概念

      • 发布者 weinfoadmin
      • 分类 未分类
      • 日期 2021年9月9日
      • 评论 0评论

      专题介绍:R是一种广泛用于数据分析和统计计算的强大语言,于上世纪90年代开始发展起来。得益于全世界众多 爱好者的无尽努力,大家继而开发出了一种基于R但优于R基本文本编辑器的R Studio(用户的界面体验更好)。也正是由于全世界越来越多的数据科学社区和用户对R包的慷慨贡献,让R语言在全球范围内越来越流行。其中一些R包,例如MASS,SparkR, ggplot2,使数据操作,可视化和计算功能越来越强大。R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX、Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R的学术性开发比较早,适合生物学和医学等学术学科的科研人员使用。

      是新朋友吗?记得先点R语言关注我哦~
      文末有赠书福利哦
      【R语言】已开通R语言社群,五湖四海,天南地北,各行各业,有缘相聚,共享R事,雕刻数据,求解问题,以创价值。喜乐入群者,请加微信号luqin360,或扫描文末二维码,添加为好友,同时附上R-入群。有朋自远方来,不亦乐乎,并诚邀入群,以达相互学习和进步之美好心愿。

      ggplot2是R中最受欢迎的绘图工具之一。其是一套高级的图形系统,发明了一套用于绘图的图形语法,这一套图形语法极大的简化了绘制复杂图形的。根据ggplot2的理念,一个统计图形可以被划分成为三个部分:Plot(图形)= data(数据) +Aesthetics(图形美学) +Geometry(几何变换)。

      •  数据: 使用ggplot2进行绘图,数据集的格式一般是数据框的格式。

      •  图形美学: 指定x和y变量,同时用来指点图形的颜色、大小、形状等。

      •  几何变换: 几何变换用于指定绘制什么统计图形,条形图、点图或者任何图形。

      ggplot2提出关于统计图形的图形语法,而数据,图形美学,几何变换则是绘制统计图形的几个关键的要素。ggplot2包含两个关键的函数:

       

      • qplot:用于快速的绘制统计图形

      • ggplot2:通过不同的图层绘制图形,比qplot更加的灵活

      在绘制好图形之后,last_plot()函数,可以返回最近绘制的一幅图形。而ggsave(“plot.png”,width = 5, height = 5)函数,则可以将最近绘制的图形保存下来。

      qplot的语法类似于R的基本plot函数,其参数包括:

      • x:x坐标(例如 col1)

      • y:y坐标(例如 col2)

      • data:具有相应列名称的数据框

      • xlim, ylim:坐标轴的范围,例如 xlim=c(0,10)

      • log:进行对数变换,例如 log=“x”或log=“xy”

      • main:图形的主题,另外,通过?plotmath可以查看数学公式的使用

      • xlab, ylab:x轴和y轴的标签

      • color,shape,size:颜色,形状,大小的调整

      ggplot 函数主要接受两个参数,1.数据集;2.aes功能提供的图形美学。其他参数(如几何对象(例如点,线,条))通过+作为分隔符附加来传递。

      下面总结geom_*函数族,这个函数族用于指定对应的几何变换,也就是用于指定绘制何种图形。

      • geom_abline() geom_hline() geom_vline():参考线:水平,垂直和对角线

      • geom_bar() geom_col() stat_count():条形图

      • geom_bin2d() stat_bin_2d() :2dbin的热图计数图

      • geom_blank() :绘制空白图形

      • geom_boxplot() stat_boxplot() :绘制箱线图

      • geom_density() stat_density() :密度图

      • geom_density_2d() stat_density_2d() :二维密度图

      • geom_dotplot() :绘制点图

      • geom_hex() stat_bin_hex() :2d bin的六角形热图计数图

      • geom_freqpoly() geom_histogram() stat_bin() :直方图和频率图

      • geom_jitter() :抖动点图

      • geom_path() geom_line() geom_step() :连线图

      • geom_point() :点图

      • geom_polygon() :多边形图

      • geom_qq_line() stat_qq_line() geom_qq() stat_qq() :QQ图

      • geom_quantile() stat_quantile() :分位数回归图

      • geom_rug() :地毯图

      • geom_label() geom_text() :文本

      • geom_violin() stat_ydensity() :小提琴图

      下面介绍如何快速的绘制常用的图形,以帮助我们尽可能快的了解数据。


      一、散点图

      散点图是非常常用的一种图形。创建散点图的方式非常的简单,使用qplot函数进行创建,指定两个参数,x轴的数据和y轴的数据,散点图如图1所示。

      图1 散点图

      上面的代码中使用qplot快速的绘制出了一幅散点图。在代码中首先创建了三个向量,x,y,cat.这三个向量。使用qplot绘制出了x和y的散点图。因为是要绘制散点图,因此qplot函数中,geom参数的值指定为“point”。接下来会绘制分组的散点图。

      接下来调整散点图的点的颜色和大小,在这里添加连两个新的参数shape和color,用于调整散点图不同点的形状和颜色,如图2所示。

      图2  调整大小和形状散点图

      上面的代码绘制了分组的散点图,将不同组的数据通过点的形状和颜色区分开来。这里本质上是是绘制了一个四维图形。使用颜色和形状来表示一个新的维度,cat。

      上面使用了qplot进行绘制散点图,qplot的使用方式和R基础函数plot非常的相似,使用这个函数能够使用最少的代码来绘制出想要的图形,如果需要对于图形更多的调整,则最好使用ggplot函数来进行绘图。接下来使用ggplot来绘制图形,如图3所示。

      图3 散点图

      上面的代码首先对于ggplot2包中的数据集diamonds进行取了子集,因为原本的整个数据集比较的大。使用sample_frac函数选取了原始数据集的30%的数据进行绘图。这里使用ggplot函数绘制了一幅分组的散点图,x轴表示carat变量,y轴表示price变量,颜色通过color变量表示。在ggplot函数中,首先设置好了数据集dsmall,然后定义数据的映射关系,通过aes函数设定了x= carat, y = price, color=color。最后使用geom_point函数指明绘制一个散点图,通过size参数指定数据集点的大小。

      二、折线图

      将散点图的点连接起来的图形就是折线图。折线图与散点图表达的信息非常的类似,都是描述两个变量之间的关系。下面使用R的基础函数plot函数来绘制折线图,如图4所示。

      图4  折线图

      上面的代码使用了plot函数来绘制一个线图,使用的数据集是pressure数据集,数据集中有两个变量,分别为:“temperature”、“pressure” 。这两个变量分别为x轴和y轴。plot函数中type用于指定绘制什么种类的图形,type =‘l’表示绘制的是线图。如果type = ’p’,则表示绘制的是散点图。下面绘制多条线图,如图5所示。

      图5 多条折线图

      上面的代码绘制了两条线图,并且在线图中添加了数据点。使用plot绘制多条图形的方法是首先使用plot函数绘制好一幅图,然后使用point函数与line函数添加新的内容,使用point函数添加点,使用line函数添加线。qplot函数绘制图形的方式要比plot函数更为简单。使用qplot来绘制折线图,如图3.6所示。

      图6 折线图

      qplot绘制折线图的方式与之前绘制散点图的方式非常的相似,将geom参数改为‘line’,则表示绘制的图形是线图。这里设置了两种统计变换,使用c()向量将两种统计变换作为一个参数进行传递。使用ggplot函数绘制折线图与ggplot函数绘制散点图也非常的相似。接下来使用ggplot来绘制折线图,如图7所示。

      图7  折线图

      上面的代码中,使用了ggplot函数来绘制折线图。实现的方式是在geom_point()函数的末尾加上了geom_line。可以注意到,ggplot函数对于构建复杂图形非常的合适,因为图形的修改,添加可以通过’+’来完成为,统计图形可以一层一层的叠加。

      三、绘制条形图

      条形图往往被用于表示不同分类变量的数值。在基础的R中,绘制条形图使用的是barplot函数。这里使用的数据集是R自带的数据集BOD,BOD数据框架有6行2列,给出了水质评价中生物需氧量与时间的关系,下面使用R的基础绘图函数绘制了一幅条形图,如图8所示。

      图8 条形图

      如果数据只是一个向量,也就是没有计数的结果,则需要先使用table函数对数据集进行计数,如图9所示。

      图9 条形图

      上面的代码通过两种方式绘制了条形图,第一种方式是直接指定了一个向量,作为条形图的每一个值,然后通过names.arg参数指定不同条形的名称。第二种实现方式是使用一个向量的列联表来绘制条形图。使用qplot函数绘制与barplot绘制条形图有些许不同。接下来使用qplot函数来绘制条形图,如图10所示。

      图 10 条形图

      上面的代码使用了qplot绘制了条形图,在这里参数的指定有一个要求,就是x用于指定分类变量,y用于指定数值变量。然后设置geom=‘col’用于指定绘制的图形是条形图。使用ggplot绘制条形图同样非常的简单,接下来使用ggplot函数来绘制条形图,如图11所示。



      图11 条形图

      下面的代码首先将Time变量转换成为了因子类型,然后再绘制图形,这样的话与图3.11是有一些差别的。下面的代码绘制的图形,如图12所示。

      图12 条形图

      上面的代码使用相同的数据绘制出了两幅条形图。第一幅条形图坐标轴为6的位置没有条形,而第二幅图没有6的位置。这是因为,原始的数据中,Time这个变量是用数字表示的,而数字中没有6,这个时候6就会空出来。第二幅图中,将Time这个变量做了类型转换,转换成为了因子。这就相当于将数据变成了分类变量,而类别只包括1、2、3、4、5、7这6个类别。

      总结

      本章节介绍了常用图形的绘制。在这些图形的绘制过程中,并没有进行太多的细节调整,没有对参数进行改变。这样,能够尽可能快速的对现有的数据进行可视化,能够尽可能快速的了解数据。本章节是基于这样的目的。

      在本章节中,介绍了ggplot2包的一些基本概念。介绍了散点图的快速绘制,介绍了折线图、条形图的快速绘制。如果,读者是想快速的对数据进行可视化展示,并且对于图形的细节并没有太多的要求,本章内容能够帮助读者快速的进行图形绘制。

       

      本文摘自机械工业出版社出版的《R语言数据可视化实战》一书。文章略有修改,请按照出版图书为准,经出版社授权发布


      书籍购买链接,如下:





      👇👇👇👇👇







      今日福利 






        留言赠书参与方法 


      分享一下你用R语言的经验或者感受,活动截止时我们将选择7名集赞次数最多者获得以上书籍。

      截止时间:2020 年12月20日18:00



      需要加入R语言群的朋友,可以扫描我的微信号,备注“R-入群”。我会邀请你加入R语言群,和大家一起讨论与学习。

      推荐阅读:   

      1 复杂数据统计方法-基于R的应用(第三版)

      2 dplyr包-列变换的方法

      3 dplyr包-列选择的方法


      推荐公众号:数据科学与人工智能

      数据科学与人工智能公众号推广Python语言,数据科学与人工智能的知识和信息。扫码下方二维码关注我,一起学习Python语言和数据科学与人工智能。


      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      weinfoadmin

      上一篇文章

      数据挖掘与R语言
      2021年9月9日

      下一篇文章

      dplyr包-行选择的方法
      2021年9月9日

      你可能也喜欢

      2-1675088548
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      30 1月, 2023
      9-1675131201
      如何快速批量修改 Git 提交记录中的用户信息
      26 1月, 2023
      8-1678501786
      肿瘤细胞通过改变CD8+ T细胞中的丙酮酸利用和琥珀酸信号来调控抗肿瘤免疫应答。
      7 12月, 2022

      留言 取消回复

      要发表评论,您必须先登录。

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?