如何使用 R 语言来绘制图表和图(曲线等)
前言
如果你是学习或者从事数据分析相关的专业,那么你一定使用过或者被告知要使用 R 语言。但是有那么多可以数据分析的语言,为什么要使用 R 呢?因为 R 可以输出非常好的可以出版的图像,对于博客可能不需要这样,但是对于论文、书籍这种出版物就很有必要了,毕竟大多数出版物的图表都不是彩色的。
需要注意,本文只用于记录如何使用 R 来绘制图表或图,所以只对语句有简单的介绍,如果想看全面完整的语句介绍,可以看官方文档:《An Introduction to R》
绘制各种图表
绘制扇形图
这时候让我们新建一个,但是不要绘制坐标轴了。
首先需要生成一些数据用来显示,这部分内容如下(输入>
开头的行即可):
margin.table(UCBAdmissions,3) -> Department
margin.table(UCBAdmissions, 3)
会通过数据集UCBAdmissions
(这个数据是伯克利招生的数据,自带的)来生成一个表Department
。然后使用pie()
函数来生成“Department”各部分占比的扇形图:
pie(Department)
绘制条形图
简单的条形图
还是上面一节的数据,利用它们来继续生成条形图。生成条形图使用barplot()
函数即可,xlab=
是横轴的标题,ylab=
是纵轴的标题:
barplot(Department, xlab="Department", ylab="Number")
堆叠条形图
生成复合条形图的话,上面那种数据格式就不够用了,所以重新生成一个表:
margin.table(UCBAdmissions, c(1,3)) -> Admit.by.Dept
如果直接使用barplot()
来调用数据的话,生成的条形图如下:
barplot(Admit.by.Dept)
并排条形图
如果想生成两个并排靠在一起的条形图,使用以下语句:
barplot(Admit.by.Dept, beside=T, ylim=c(0,1000), legend=T, main="Admissions by Department")
beside=T
表示beside
为真(T
表示True
),如果为真的话,绘制成并列条形图,如果为假的话,那么就生成上面的堆叠条形图;ylim=
表示纵轴的范围;legend
表示图例,也就是下图右上角那个,这里既可以使用 T/F 来表示是否显示图例,也可以直接输入值来自定义图例;main
表示主标题。
绘制曲线图
绘制曲线图不能使用上面这种按类分列的表,所以来使用faithful
数据集进行演示。
首先引入faithful
数据集来做好准备:
attach(faithful)
然后使用plot(density(...))
来生成曲线图:
plot(density(waiting))
waiting
为横轴标签。
绘制点图
点图需要使用一个新的数据集来进行演示,>
开头的是需要手动输入的:
> data(mammals, package="MASS")
> str(mammals)
'data.frame': 62 obs. of 2 variables:$ body : num 3.38 0.48 1.35 465 36.33 ...$ brain: num 44.5 15.5 8.1 423 119.5 ...
第一行生成了一个数据集mammals
。输入str(mammals)
可以看到数据的内容,但是这里由于太长了就没有显示完全。
然后使用attach()
函数导入数据集,然后使用plot()
函数绘制图像:
attach(mammals)
plot(log(body), log(brain))
这里需要注意以下,绘制图像的语句还可以这样:
plot(x=body, y=brain, log="xy")
二者效果一样。
这时候可以发现点好像聚集在一条线附近,R 支持绘制出这条线:
scatter.smooth(log(body), log(brain))
绘制图(坐标轴、曲线等)
添加坐标轴
画绝大部分类型的图表的第一步当然是添加坐标轴啦。语句很简单,需要使用plot()
函数,如下:
plot(0:100, 0:100, type="n", xlab="a", ylab="b")
这时候效果如下:
plot()
函数是一个“high-level”函数。括号中的0:100
表示坐标从0
开始到100
;type="n"
表示只绘制坐标轴,不绘制任何其他的图像(感兴趣可以去掉这个参数看看默认情况下的点图是什么样的);xlab="a"
表示横坐标轴的标签,ylab="b"
同理。
绘制曲线
然后来在上面的坐标轴中绘制 b = 0.01 a 2 b=0.01a^2 b=0.01a2 的曲线,需要使用curve()
函数,如下:
curve(x^2/100, add=TRUE)
这里应该只用解释一下add=TRUE
是干嘛的。add=TRUE
会强制curve()
函数作为一个“low-level”图像来绘制曲线,从而将其绘制在当前已经存在的图像上面(如果有的话)。
绘制点
绘制点分为两种:绘制单独的点,以及绘制某一曲线上的点。但是不论哪种类型,一般都要使用points()
函数。
按顺序来,先讲讲前者。绘制单独的点的语句很简单,直接使用坐标即可,如下:
points(100,50)
可以看到在曲线的右侧绘制了一个空心的圆点。
那么如果想在 b = 0.01 a 2 b=0.01a^2 b=0.01a2 的曲线上标记一些点呢?有两种方法,一种和一个个输入差不多,不过可以结合到一起,稍微精简一点,如下:
points(x=c(20, 60, 90), y=c(4, 36, 81), pch=6)
但是也可以使用另外一种方法,只用输入横坐标x
和函数即可,如下:
points(x<-c(20,60,90), y=x^2/100, pch=6)
二者效果一样的:
更改点的样式
那么可不可以更改点的样式呢?加上pch
参数即可,如下:
points(100,50, pch=...)
pch=
后面可以直接跟+
、*
这种符号,用引号包裹就行。比如说想点变成星号*
就可以像下面这样:
points(100,50, pch="*")
也可以跟数字,不同数字表示的内容如下:
此外:
- 26~31 之间的数字没有作用;
- 2/32~127 之间是对应着 ASCII 码;
- 128~255 之间是仅在单字节的位置的原始字符,并且使用符号字体,其中 129~159 只能在 Windows 中使用;
- -32 用来在支持的地方使用 Unicode 码。
绘制直线(以及自定义线的颜色)
假设现在需要过曲线上两点做一条红色的直线,那么可以使用abline()
函数和col
参数,如下:
abline(a=-18, b=1.1, col="red")
其中a=
后面跟的是纵坐标;b=
后面跟的是斜率;col=
后面跟的是颜色。
设置主标题
设置主标题需要使用title(main="...")
函数,如下:
title(main="This is the first chart of R")
在图中的任意位置绘制文本
假设我们想在曲线 b = 0.01 a 2 b=0.01a^2 b=0.01a2 旁边写上函数式,那么可以使用text()
函数,如下:
text(x=80, y=37, expression(a == frac(1,100) * b^2))
其中,a
和b
是将显示在图上的,而前面的x
和y
是不能修改的。
希望可以帮到有需要的人~
如何使用 R 语言来绘制图表和图(曲线等)相关推荐
- r语言做绘制精美pcoa图_科学网—R语言 PCA PCoA ggplot2 - 靳泽星的博文
这一篇是衔接上一篇的,就是要用ggplot2程序包对PCA和PCoA进行可视化.代码我直接照搬过来了,只是绘图的时候用ggplot函数.ggplot2包实现了一个在R中基于全面一致的语法创建图形时的系 ...
- r语言做绘制精美pcoa图_三分钟绘制一张优美的PCoA图 | 云平台
本文主要为您迅速绘制一张优美的PCoA图提供步骤指导(1-4要点),另附细节优化方法(5及之后的要点),可后期慢慢研究调整,同时提供相关分析方法说明和参考文献,为您深入了解提供支持. 1.了解输入数据 ...
- r语言做绘制精美pcoa图_R语言统计与绘图:绘制QQ图
QQ图一般用来比较两组数字的分布,比如两个变量或两个向量. 在国外,顾客习惯性会给服用人员小费,给多少小费是一个经常被讨论的话题,今天使用的数据集为reshape2包的tips数据集,用来演示QQ图的 ...
- r语言做绘制精美pcoa图_PCOA分析
PCoA分析,即主坐标分析(principal co-ordinates analysis),也是一种非约束性的数据降维分析方法,可用来研究样本的相似性或差异性,与PCA分析类似:主要区别在于,PCA ...
- r语言做绘制精美pcoa图_R语言进行PCoA分析
相信大家在做微生物多样性研究时经常听到PCA分析.PCoA分析,NMDS分析,CCA分析,RDA分析. 它们对 物种(或基因.功能)的分析具有重要作用,因而频频出现在16S测序及宏基因组测序中. 那么 ...
- r语言做绘制精美pcoa图_科学网-R语言 PCA PCoA ggplot2-靳泽星的博文
这一篇是衔接上一篇的,就是要用ggplot2程序包对PCA和PCoA进行可视化.代码我直接照搬过来了,只是绘图的时候用ggplot函数.ggplot2包实现了一个在R中基于全面一致的语法创建图形时的系 ...
- r语言做绘制精美pcoa图_如何绘制精美的PCoA图形
匿名用户 1级 2017-06-20 回答 虽然一般的16S或者宏基因组等分析e69da5e6ba90e799bee5baa6e79fa5e9819331333363373762流程当中都会包含PCo ...
- r语言做绘制精美pcoa图_R语言:Bary-Curtis PCoA
导读 Bary-Curtis PCoA降维分析菌群结构. 一.输入数据 1.1 菌属丰度矩阵 df = data.frame(abs(round(matrix(rnorm(729, 100, 50), ...
- R语言可视化绘制及PDF使用字体参数列表:查看字体列表、可视化绘制图像中的字体参数列表、字体示例并写入pdf
R语言可视化绘制及PDF使用字体参数列表:查看字体列表.可视化绘制图像中的字体参数列表.字体示例并写入pdf 目录 R语言可视化绘制及PDF使用字体参数列表:查看字体列表.可视化绘制图像中的字体参数列 ...
最新文章
- win10鼠标灵敏度怎么调_和平精英最稳压枪灵敏度怎么调教程,适合所有段位以及适合国际版PUBG手游压枪...
- zabbix数据库表结构简单解析
- 基于centos6的mysql5.7.13主从部署(一)
- 云炬Android开发教程0 jdk下载与安装教程(小白)
- asp.net Login控件基本属性及事件说明
- Centos6.5部署大众点评CAT
- BootstrapVue UI组件
- ASP.NET中Request.IsAuthenticated和Request.User.Identity.IsAuthenticated的区别
- android plugin 镜像,cordova-plugin-screen-orientation
- linux网卡绑定和漂移,LINUX修改、增加IP的方法,一张网卡绑定多个IP/漂移IP【转】...
- 应用安全测试的发展趋势
- paip.提升安全性-------生成一个安全的验证码
- Axure rp 9 的汉化破解版
- 【操作系统】进程间通信 — 消息队列
- CodeForces 645D Robot Rapping Results Report
- charles限制网速
- python 存根_python - 内联类型注释与存根会导致不同的mypy行为 - SO中文参考 - www.soinside.com...
- 积化和差 和差化积公式
- IIS URL 重写
- 二手房买卖中“跳单”行为之探讨
热门文章
- 论文阅读笔记(1):Deep Animation Video Interpolation in the Wild——野外深度动画视频插值(2021CVPR)
- 2D - 2D 点对 求解基础矩阵 F 本质矩阵E 单应矩阵 H 进而求 旋转矩阵 R 和 t
- 写得很好很真实的一篇高考作文居然得了0分
- 读写权限分明已获取还Permission Denied
- chromebook刷机_Chromebook正在获得更好的家长控制
- JAVA:AudioFiction(有声小说)项目实现
- MOOC和网上学习平台整理
- 【leetcode】592.分数加减运算(python)
- ERP真能大刀阔斧得起来?(转)
- 18.5.4 分布式恢复