目录

0 R语言概述

1 本次实战简介

2 涉及的工具包

2.1 ggplot2简介

2.2 ggExtra简介

2.3 ggpointdensity简介

3 开始画图

3.1 安装并载入

3.2 导入数据

3.3 二维散点核密度图

3.4 修改横纵坐标轴和坐标轴名称

3.4.1 不想要的部分:XXX=“none”

3.4.2 修改背景(包括坐标轴)

4.绘制边际图形


0 R语言概述

R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。重点是:画图Nice!没有找到对手!就算有对手也没用,对于科研党来说R语言用的还是多一些(反正本人看到的文献还是R语言画图多一点)。

所以博主立志尽快把R语言语法,特别是绘图方面融会贯通,因此博客内容分成两大部分:(1)R语言学习(将会以从浅至深的顺序梳理、摘抄R语言相关知识);(2)R语言绘图实战(时间紧迫,别人的图太美急需学习)。

关于R语言概述的内容以及软件安装和界面调试参考以下博文:

项目 链接
R语言介绍 R语言是什么?
软件安装 R和Rstudio 安装教程
软件安装(Windows) Windows下安装和编译
R语言入门 R语言入门教程-敲着试一试
R语言基本统计分析 基本统计分析
R Studio界面(windows) windows界面讲解
R Studio界面设置 界面设置(如何更加美观)

1 本次实战简介

我们在论文中找到如此炫酷的一张图(Mutch et al., 2019),要进行分析是如何制作的:

我们来看这张图,主要有以下几个方面:(1)六边形散点(且越聚集颜色越深,为一维核密度分布,而且颜色是有透明度的)(2)横纵坐标轴文字以及坐标轴刻度(其中横坐标两个刻度一个数字)(3)左上角文字标“D”,右边文字描述,而且还有“+”、“-”的符号(4)边际直方图分布

那么我们的代码也应该从这四个方面分别入手,以求得最好看的图片。

注意:R语言绘图有句话“所见即所得”,所以我们画图的时候不着急一下子都画出来,只要把每个部分累加就行。所以该图可以理解为:散点+(横纵坐标轴+坐标轴名称)+角标文字+边际直方图。

2 涉及的工具包

首先解决下载问题,R语言使用我们都下载两个东西:R和R Studio,一个是语言环境,一个是IDE(我是这么理解的)。

附:R语言常用工具包及介绍。

  1. 常用工具包分类
  2. 常用包

2.1 ggplot2简介

一个绘图的R包,让人欲罢不能,纵使秃头白发也难舍弃,秒杀科研论文的工具包。详细内容见ggplot2详细讲解。

2.2 ggExtra简介

这个工具包介绍很少很少,甚至连成文的材料都没有,……但是它的功能很明确!ggExtra:绘制图形的边界直方图。

2.3 ggpointdensity简介

这个就更加“小”了,但是却很常用,用来绘制密度散点图。R语言绘制密度散点图

3 开始画图

3.1 安装并载入

#以上内容分开输入 不要着急
install.packages("ggplot2")
install.packages("ggExtra")
install.packages("ggpointdensity")
library(ggplot2)
library(ggExtra)
library(ggpointdensity)

3.2 导入数据

点击Import Dataset 注意修改变量名称和数据格式。

3.3 二维散点核密度图

接着我们开始绘制散点核密度图(这里以R语言自带的数据集iris为例)

p<- ggplot(data =iris,mapping = aes(x =Sepal.Length,y = Sepal.Width))+geom_pointdensity()
#将iris替换成自己的data.frame数据集,aes()函数里x,y=自己的X与Y变量名称

那么我们掌握了如何绘制散点核密度图,接下来思考的是如何绘制成更加好看的六边形散点核密度图,遗憾的是,绘制六边形散点图需要一个R包(hexin),本人尝试了多种方法都没有成功,因此附上相关教程:R语言绘图教程(含六边形散点图绘制)

3.4 修改横纵坐标轴和坐标轴名称

在R语言ggplot2里,修改背景、横纵坐标轴统统归theme()函数来管。有一个博文讲的很明白,在此引用:ggplot2 theme函数。

结合以上内容,我们来举几个例子。

3.4.1 不想要的部分:XXX=“none”

比如我们不想要图例 那就legend.position="none";

此处注意,我们之前说过R语言绘图就是不断地加起来那么就要让:原来的图P=P+一个变化

p<-p+theme(legend.position="none")

3.4.2 修改背景(包括坐标轴)

新版本的R可以用一个最简单的办法:theme_classic()  但是很多时候有bug,所以不好实现。

那么我们逐项修改:

  1. 将背景删去,同样删去网格线

    p<-p+theme(panel.grid.major = element_blank(),panel.grid.minor=element_blank(),panel.border = element_blank(), panel.background = element_blank())
  2. 添加坐标轴的实线
    pt<-pt+theme(axis.line.x = element_line(color = "black"), axis.line.y = element_line(color = "black"))

  3. 修改坐标轴极值和间距

    p<-p+scale_y_continuous(breaks=seq(2,4.5,1))+scale_x_continuous(breaks=seq(0,8,2))
    #修改成适合自己的坐标轴范围,其中第一个是最小值,第二个是最大值,第三个是间距
  4. 添加文字(包括坐标轴名称)

默认坐标轴名称是变量的名称,如果我们要修改的话,则修改刻度标签

p<-p+xlab("this is xlab")+ ylab("this is ylab")

此外,我们想要添加文本注释,就就使用geom_text()函数:(引用自绘制文本,注释和主题)

geom_text(mapping = NULL, data = NULL, stat = "identity",position = "identity", ..., parse = FALSE, nudge_x = 0, nudge_y = 0,check_overlap = FALSE, na.rm = FALSE, show.legend = NA,inherit.aes = TRUE)

参数注释:

  • mapping:映射,使用aes()设置映射
  • stat:统计转换
  • position:位置调整
  • check_overlap:默认值是 FALSE,如果是TRUE,新增的文本不会覆盖同一图层中的先前文本。
  • parse:默认值是FALSE,不对文本内容进行解析。
  • show.legend:是否显示该文本图层的图例(legend)
  • nudge_x,nudge_y:把文本做小幅移动的距离

geom_text()可以识别的aes参数:

  • x
  • y
  • label:显示的文本
  • alpha:文本重叠部分的透明度
  • angle:文本旋转的角度
  • colour:文本的前景色
  • family:字体名称
  • fontface:字体类型,有效值是:"plain", "bold", "italic", "bold.italic"
  • group:分组
  • hjust、vjust:文本的水平和垂直调整距离,取值范围是0-1,0代表right/bottom,1代表left/top。
  • lineheight:
  • size:字体的大小

因此我们可以使用该函数来进行注释的添加,但是本人尝试了半天还是没搞明白,仅供参考,于是终于找到了另一个高效的函数annotate(),它的使用方法非常简单,annotate("text",x=3,y=3,label="加入的文字"),其中仅仅需要修改x和y坐标(同数据坐标一样)。

因此可以这样使用

p<-p+annotate("text",x=3,y=3,label="文字充填")
#增加尺寸
p<-p+annotate("text",x=4,y=4,label="文字充填",size=2)

4.绘制边际图形

最后来绘制边际图形,有很多个类型可供选择,包括直方图、核密度图等,具体参考边际直方图

type=" " 作用
density 密度曲线
histogram 直方图
boxplot 箱线图
violin 小提琴图
densigram 密度图与直方图
ggMarginal(p,type="histogram",fill="skyblue")

其中更改type类型即可绘制不同的图形,fill表示填充颜色,col可更改描边颜色。我们使用核密度曲线尝试。(颜色参考颜色参数,更加详细的形状设置参考R语言绘图各类基本参数)

ggMarginal(p,type="density",col="red",fill="skyblue")

R语言学习实战——解决边际分布图相关推荐

  1. 统计学习导论之R语言应用(四):分类算法R语言代码实战

    统计学习导论之R语言应用(ISLR) 参考资料: The Elements of Statistical Learning An Introduction to Statistical Learnin ...

  2. 统计学习导论之R语言应用(三):线性回归R语言代码实战

    统计学习导论(ISLR) 参考资料 The Elements of Statistical Learning An Introduction to Statistical Learning 统计学习导 ...

  3. R语言学习之数据分析实战(一)

    R语言学习之数据分析实战(一) 一.线性回归 回归(regression):通常指那些用一个或多个预测变量,也称自变量或解释变量,来预测响应变量,也称为因变量.效标变量或结果变量的方法. 普通最小二乘 ...

  4. r语言c函数怎么用,R语言学习笔记——C#中如何使用R语言setwd()函数

    在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//") > setwd("e:\桌面\") > ...

  5. 数据挖掘r语言和python知乎_Hellobi Live |R语言爬虫实战案例分享:网易云课堂、知乎live、今日头条、B站视频...

    课程名称 R语言爬虫实战案例分享:网易云课堂.知乎live.今日头条.B站视频 网络数据抓取是数据科学中获取数据中的重要途径,但是一直以来受制于高门槛,都是专业程序员的专属技能.直到R语言和Pytho ...

  6. 2021年R语言学习路线以及资源推荐

    R语言学习从入门到熟练掌握资源推荐 最近有些小伙伴在后台问我要一些资源,呃,前段时间一直没看到消息,现在统一整理一下,由于微信不让发这个,我就放在公众号里了,在公众号里回复[R语言学习资源]即可,如果 ...

  7. R语言学习笔记(1~3)

    R语言学习笔记(1~3) 一.R语言介绍 x <- rnorm(5) 创建了一个名为x的向量对象,它包含5个来自标准正态分布的随机偏差. 1.1 注释 由符号#开头. #函数c()以向量的形式输 ...

  8. r语言 读服务器数据,R语言数据实战 | 安装R语言

    原标题:R语言数据实战 | 安装R语言 1.R的获取和安装 获取和安装R很容易(这也是它"亲民"的地方),具体步骤如下: Step 1: 登陆R语言官方网站https://www. ...

  9. R语言学习手记 (1)

    R语言学习手记 (1) 经管的会计和财管都会学数据统计与分析R语言这门课,加上我也有点兴趣,就提前选了这门课,以下的笔记由老师上课的PPT.<R语言编程艺术>和<R语言数据科学> ...

最新文章

  1. python--内置函数
  2. 用markdown写博客园
  3. SQL语句关键字执行顺序
  4. 强化学习(五)用时序差分法(TD)求解
  5. mybatis-generator自动生成mapper
  6. cordova打开文件_Cordova开发App入门(四)打开及下载第三方App
  7. queue POJ 2259 Team Queue
  8. Hulu 2013北京地区校招笔试题
  9. 将Sublime Text 添加到鼠标右键菜单的教程方法
  10. IE6/IE7/IE8/Firefox/Chrome/Safari的CSS hack兼容一览表
  11. 车载系统不识别 U盘
  12. CREO图文教程:三维设计案例之水龙头的螺旋弹簧设计图文教程之详细攻略
  13. 打卡赠书,新一年的读者福利 !
  14. 帮嫦娥五号登月的AI还能用来玩游戏,20行Python代码带你领略强化学习的风采
  15. 好像有点看不懂,脑洞
  16. 求大于某数的最小素数Python版
  17. 使用Travis CI进行在线build
  18. 克拉克松Clarkson Research情报网注册登录及进行数据查询(以世界造船厂分布为例)
  19. 小巧精美原厂轴 Cherry发布全新MX Board 1.0
  20. 关于 TRTC (实时音视频通话模式)在我司的实践

热门文章

  1. 苹果手机怎么取消优酷自动续费_优酷VIP会员:优酷怎么取消自动续费
  2. linux重启python服务_linux重启服务命令
  3. 技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-2.启动项目
  4. uni-app 监听移动端的物理返回键
  5. ReverseFind(‘//’)函数并不是得到从右开始到//的字节数
  6. Hibernate查询技术之HQL语句
  7. 视频教程-Python数据可视化库:Matplotlib视频课程-Python
  8. Linux服务器设置ssh私钥登录
  9. CSS —— 选择器(带你深入了解如何使用选择器)
  10. Linux之killall命令