前言

如果你是学习或者从事数据分析相关的专业,那么你一定使用过或者被告知要使用 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开始到100type="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="*")

也可以跟数字,不同数字表示的内容如下:

此外:

  1. 26~31 之间的数字没有作用;
  2. 2/32~127 之间是对应着 ASCII 码;
  3. 128~255 之间是仅在单字节的位置的原始字符,并且使用符号字体,其中 129~159 只能在 Windows 中使用;
  4. -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))

其中,ab是将显示在图上的,而前面的xy是不能修改的。

希望可以帮到有需要的人~

如何使用 R 语言来绘制图表和图(曲线等)相关推荐

  1. r语言做绘制精美pcoa图_科学网—R语言 PCA PCoA ggplot2 - 靳泽星的博文

    这一篇是衔接上一篇的,就是要用ggplot2程序包对PCA和PCoA进行可视化.代码我直接照搬过来了,只是绘图的时候用ggplot函数.ggplot2包实现了一个在R中基于全面一致的语法创建图形时的系 ...

  2. r语言做绘制精美pcoa图_三分钟绘制一张优美的PCoA图 | 云平台

    本文主要为您迅速绘制一张优美的PCoA图提供步骤指导(1-4要点),另附细节优化方法(5及之后的要点),可后期慢慢研究调整,同时提供相关分析方法说明和参考文献,为您深入了解提供支持. 1.了解输入数据 ...

  3. r语言做绘制精美pcoa图_R语言统计与绘图:绘制QQ图

    QQ图一般用来比较两组数字的分布,比如两个变量或两个向量. 在国外,顾客习惯性会给服用人员小费,给多少小费是一个经常被讨论的话题,今天使用的数据集为reshape2包的tips数据集,用来演示QQ图的 ...

  4. r语言做绘制精美pcoa图_PCOA分析

    PCoA分析,即主坐标分析(principal co-ordinates analysis),也是一种非约束性的数据降维分析方法,可用来研究样本的相似性或差异性,与PCA分析类似:主要区别在于,PCA ...

  5. r语言做绘制精美pcoa图_R语言进行PCoA分析

    相信大家在做微生物多样性研究时经常听到PCA分析.PCoA分析,NMDS分析,CCA分析,RDA分析. 它们对 物种(或基因.功能)的分析具有重要作用,因而频频出现在16S测序及宏基因组测序中. 那么 ...

  6. r语言做绘制精美pcoa图_科学网-R语言 PCA PCoA ggplot2-靳泽星的博文

    这一篇是衔接上一篇的,就是要用ggplot2程序包对PCA和PCoA进行可视化.代码我直接照搬过来了,只是绘图的时候用ggplot函数.ggplot2包实现了一个在R中基于全面一致的语法创建图形时的系 ...

  7. r语言做绘制精美pcoa图_如何绘制精美的PCoA图形

    匿名用户 1级 2017-06-20 回答 虽然一般的16S或者宏基因组等分析e69da5e6ba90e799bee5baa6e79fa5e9819331333363373762流程当中都会包含PCo ...

  8. r语言做绘制精美pcoa图_R语言:Bary-Curtis PCoA

    导读 Bary-Curtis PCoA降维分析菌群结构. 一.输入数据 1.1 菌属丰度矩阵 df = data.frame(abs(round(matrix(rnorm(729, 100, 50), ...

  9. R语言可视化绘制及PDF使用字体参数列表:查看字体列表、可视化绘制图像中的字体参数列表、字体示例并写入pdf

    R语言可视化绘制及PDF使用字体参数列表:查看字体列表.可视化绘制图像中的字体参数列表.字体示例并写入pdf 目录 R语言可视化绘制及PDF使用字体参数列表:查看字体列表.可视化绘制图像中的字体参数列 ...

最新文章

  1. win10鼠标灵敏度怎么调_和平精英最稳压枪灵敏度怎么调教程,适合所有段位以及适合国际版PUBG手游压枪...
  2. zabbix数据库表结构简单解析
  3. 基于centos6的mysql5.7.13主从部署(一)
  4. 云炬Android开发教程0 jdk下载与安装教程(小白)
  5. asp.net Login控件基本属性及事件说明
  6. Centos6.5部署大众点评CAT
  7. BootstrapVue UI组件
  8. ASP.NET中Request.IsAuthenticated和Request.User.Identity.IsAuthenticated的区别
  9. android plugin 镜像,cordova-plugin-screen-orientation
  10. linux网卡绑定和漂移,LINUX修改、增加IP的方法,一张网卡绑定多个IP/漂移IP【转】...
  11. 应用安全测试的发展趋势
  12. paip.提升安全性-------生成一个安全的验证码
  13. Axure rp 9 的汉化破解版
  14. 【操作系统】进程间通信 — 消息队列
  15. CodeForces 645D Robot Rapping Results Report
  16. charles限制网速
  17. python 存根_python - 内联类型注释与存根会导致不同的mypy行为 - SO中文参考 - www.soinside.com...
  18. 积化和差 和差化积公式
  19. IIS URL 重写
  20. 二手房买卖中“跳单”行为之探讨

热门文章

  1. 论文阅读笔记(1):Deep Animation Video Interpolation in the Wild——野外深度动画视频插值(2021CVPR)
  2. 2D - 2D 点对 求解基础矩阵 F 本质矩阵E 单应矩阵 H 进而求 旋转矩阵 R 和 t
  3. 写得很好很真实的一篇高考作文居然得了0分
  4. 读写权限分明已获取还Permission Denied
  5. chromebook刷机_Chromebook正在获得更好的家长控制
  6. JAVA:AudioFiction(有声小说)项目实现
  7. MOOC和网上学习平台整理
  8. 【leetcode】592.分数加减运算(python)
  9. ERP真能大刀阔斧得起来?(转)
  10. 18.5.4 分布式恢复