R提高篇(二): 图形初阶
目录:
- 图形示例
- 图形参数
- 符号、线条
- 颜色
- 文本属性
- 尺寸与边界
- 自定义标题
- 自定义坐标轴
- 图例
- 文本标注
- 图形组合
图形示例
- 如下代码描述病人对两种药物五个剂量水平上的响应情况
> mydata <- data.frame(dose=numeric(0),drugA=numeric(0),drugB=numeric(0))
> fix(mydata)
> mydata
> save(mydata,file = "mydata.rda")
dose drugA drugB
1 20 16 15
2 30 20 18
3 40 27 25
4 45 40 31
5 60 60 40
> - 创建图形,代码如下:
with(mydata,{
plot(dose,drugA,type="b")
}) 图形如下:
图形参数
- 通过修改参数,可对图形的字体、颜色、坐标轴、标签进行进行修改
- par(optionname=value, optionname = value ......) , 用这种方式设定的参数除非被修改,否则在会话结束前一直有效
- par() 生成一个含有当前图形参数设置的列表,添加参数 no.readonly = TRUE 生成一个可修改的当前图形参数列表
- 如下图:使用虚线和实心三角点,示例代码如下:
load("mydata.rda")
par(no.readonly = TRUE)
par(lty=2)
par(pch=17) #这两句等价于:par(lty=2,pch=17)
with(mydata,{
plot(dose,drugA,type="b") #使用par参数等价于plot(dose,drugA,type="b",lty=2,pch=17)
}) 生成图例如下:
符号和线条
- pch: 指定绘制点时使用的符号,如下图:
- cex: 指定符号的大小,是一个数值,表示绘图符号相对于默认大小的缩放比例
- ltype: 指定线条类型,如下图:
- lwd: 指定线条宽度,相于于默认值1的倍数,如:2, 0.5等
颜色
- R中,可通过颜色下标(如:col =1 )、颜色名称(col="Red")、十六进制(col="#FFFF")、RGB值(col=rgb(1,1,1))、HSV值(col=hsv(0,0,1))来指定颜色
- 颜色参数如下:
- col: 默认的绘图颜色
- col.axis: 坐标轴刻度文字的颜色
- col.lab: 坐标轴标签(名称)的颜色
- col.main: 标题颜色
- col.sub: 副标题颜色
- fg: 图形的前景色
- bg: 图形的背景色
文本属性
- 指定文本大小参数
- cex.axis: 坐标刻度文字的缩放倍数
- cex.lab: 坐标标签的缩放倍数
- cex.main: 标题的缩放倍数
- cex.sub: 副标题的缩放倍数
- 指定文件字体样式:
- font: 整数,1=常规,2=粗体,3=斜体,4=粗斜体,5=符号字体
- font.axis: 坐标刻度文字的字体样式
- font.lab: 坐标标签的字体样式
- font.main: 标题的字体样式
- font.sub: 副标题的字体样式
- ps: 字体磅值
尺寸与边界
- 尺寸与边界参数:
- pin: 以英寸表示图形的尺寸(宽和高)
- mai: 在数值向量表示边界大小,顺序为:下、左、上、右,单位为英寸
- mar: 在数值向量表示边界大小,顺序为:下、左、上、右,单位为英分(一英分 = 1/12 英寸,相当于0.21厘米)
- 示例代码及图例:
setwd("E:\\R")
load("mydata.rda")
par(no.readonly = TRUE)
par(pin=c(2,3),lwd=2,cex=1.5,cex.axis=0.75,font.axis=3)
with(mydata,{
plot(dose,drugA,type="b",pch=19,lty=2,col="red")
plot(dose,drugB,type="b",pch=23,lty=6,col="blue",bg="green")
}) - 图形大小宽高为:2英寸、3英寸,线条宽度为默认2位、符号为默认1.5倍、坐标轴文字设置为粗体,大小缩小为75%,par设定的参数对两张图均有效,plot中的参数仅对特定图形有效
自定义标题
- title()一般用于添加信息到一个默认标题和坐标轴标签被 ann=FALSE 选项移除的图形中
- 示例代码和图形:
load("mydata.rda")
with(mydata,{
plot(dose,drugA,type="b",pch=19,lty=2,ann=FALSE)
title(main="hello",sub="demo",col.main="red",col.sub="green",xlab = "jl",ylab="fy")
}) - 示例结果
自定义坐标轴
- axis()用来自定义坐标轴,而非使用R中的默认坐标田轴
- 语法: axis(side, at = NULL, labels = TRUE, pos = NA, las=, ...)
- 参数说明如下:
- side: 表示在图形的哪边绘制坐标轴: 1=下,2=左,3=上,4=右
- at: 一个数值型向量,表示需要绘制刻度线的位置
- labels: 字符向量,表示置于刻度线旁边的文字标签
- las: 标签是否平行于(=0)或垂直于(=2)于坐标轴
- 示例代码:
with(mydata,{
plot(dose,drugA,type="b",pch=19,lty=2,yaxt="n")
axis(2,at=c(20,30,40,50,60),labels = c('A','B','C','D','E'),las=2,col="blue")
}) - 注意:创建自定义坐标时,应当禁用自动生成的坐标轴
- axes = FALSE 将禁用全部的坐标轴(包括坐标轴框架线、除非添加参数 frame.plot = TRUE)
- xaxt = "n" 和 yaxt = "n" 将分别禁用X轴和Y轴(会留下框架线、只是去除了刻度)
图例
- legend(): 当图形中有多组数据时,图例可帮助每个图形代表的数据
- 语法:legend(location,title,legend,........)
- 参数说明:
- location: 图例显示位置,可使用关键字:bottom、bottomleft、left、topleft、top、topright、right、bottomright、center, 使用 inset=指定图例内侧移动的大小 (以绘图区域大小分数表示)
- title: 可选项,图例标题
- legend: 图例标签组成的字符串向量
- ......
- 示例代码:
setwd("E:\\R")
load("mydata.rda")
dose <- mydata$dose
drugA <- mydata$drugA
drugB <- mydata$drugB
plot(dose,drugA,type="b", pch=15,lty=1,col="red",ylim = c(0,60),main="Drug A vs.Drug B",xlab = "Drug dosage",ylab="drug Repsponse")
lines(dose,drugB,type = "b",pch=17,lty=2,col="blue")
abline(h=c(30),lty=2,lwd=1.5,col="gray")
legend("topleft",inset = 0.05, title = "drug Type",legend = c("A","B"),lty=c(1,2),pch=c(15,17),col=c("red","blue")) - 展现结果如下图:
- abline(): 参考线函数,语法:abline(h=yvalues, v=xvalues)
文本标注
- text(): 向绘图区域内添加文本
- mtext(): 向图形的四个边角之一添加文本
- 语法: text(location, "text to place", pos, .....)
- 参数解释:
- location: 文本的位置参数
- pos: 文本相对于位置参数的方位,1=下,2=左,3=上,4=右, 可同时配合参数 offset=作为偏移量
- 示例代码:
wt <- mtcars$wt
mpg <- mtcars$mpg
plot(wt,mpg,main="Mileage vs. Car weight",xlab="weight",ylab="Mileage",pch=18,col="blue")
text(wt,mpg,row.names(mtcars),cex = 0.5, pos=4,offset = 0.4,col="red") - 显示效果图如下:
图形组合
- 使用par() 、layout()比较容易组合多幅图为一幅总括图
- par()使用mfrow=c(nrows,ncols) 创建按行填充的图形矩阵, mfcol=c(nrows,ncols) 按列填充矩阵
- 示例代码:
attach(mtcars)
opar <- par(no.readonly = TRUE)
par(mfrow=c(2,2))
plot(wt,mpg,main="Demo1")
plot(wt,disp,main="Demo2")
hist(wt,main="demo3")
boxplot(wt,main="demo4")
par(opar)
detach(mtcars) - 结果示例:
- layout() 调用 layout(mat),其中 mat是一个矩阵,它指定要组合的多个图形所在的位置
- 示例代码:
attach(mtcars)
layout(matrix(c(1,1,2,3),nrow = 2,ncol = 2,byrow = TRUE))
hist(wt,main = "demo1")
hist(mpg,main = "demo2")
hist(disp,main = "demo3")
detach(mtcars) - 示例结果显示
R提高篇(二): 图形初阶的更多相关文章
- R语言实战(一)介绍、数据集与图形初阶
本文对应<R语言实战>前3章,因为里面大部分内容已经比较熟悉,所以在这里只是起一个索引的作用. 第1章 R语言介绍 获取帮助函数 help(), ? 查看函数帮助 exampl ...
- 【转】java提高篇(二)-----理解java的三大特性之继承
[转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in ja ...
- R语言-图形初阶
在本节中,主要目的是如何使用R语言做出简单的图形 案例1:做出wt和mpg之间的关系 attach(mtcars) plot(wt,mpg) abline(lm(mpg~wt)) title('Reg ...
- java提高篇(二)-----理解java的三大特性之继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- (转)java提高篇(二)-----理解java的三大特性之继承
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...
- 《R语言实战》读书笔记--第三章 图形初阶(二)
3.4添加文本.自定义坐标轴和图例 很多作图函数可以设置坐标轴和文本标注.比如标题.副标题.坐标轴标签.坐标轴范围等.需要注意的是并不是所有的绘图函数都有上述的参数,需要进行验证.可以将一些默认的参数 ...
- 吴裕雄--天生自然 R语言开发学习:图形初阶(续二)
# ----------------------------------------------------# # R in Action (2nd ed): Chapter 3 # # Gettin ...
- R语言实战读书笔记(三)图形初阶
这篇简直是白写了,写到后面发现ggplot明显更好用 3.1 使用图形 attach(mtcars)plot(wt, mpg) #x轴wt,y轴pgabline(lm(mpg ~ wt)) #画线拟合 ...
- 《R语言实战》读书笔记--第三章 图形初阶(一)
3.1使用图形 可以使用pdf等函数将图形直接保存在文件中.在运用attach和detach函数的使用中经常出现错误,比如命名重复的问题,所以,应该尽量避免使用这两个函数. plot是一般的画图函数, ...
随机推荐
- 实现微信公众号自动登陆自己的Web App
测试: 基本的思路是通过公众号OAuth API获取用户微信的openid.第一次使用的时候让用户登录,然后在数据库里把openid和自己应用的userid对应起来.以后获得用户的openid之后就可 ...
- 初学Linux
一直觉得Linux敲命令很蛋疼,今天开始学习一下吧,主要以练习(想到啥就查啥)命令和练习在Linux中编程(Python)为主吧. 不记得什么时候安装的Ubuntu 12.04.3 LTS虚拟机,连密 ...
- Hadoop学习-生态体系(ecosystem)概览
0. 大背景 全球No.1搜索引擎公司谷歌(Google)面临每天海量搜索引擎数据的问题,经过长时间的实践积累, 谷歌形成了自己的大数据框架,但是并没有开源,而是发表了一篇论文,阐述了自己的思想,在论 ...
- IDE、SATA、SCSI、SAS、FC、SSD硬盘类型介绍[zz]
目前所能见到的硬盘接口类型主要有IDE.SATA.SCSI.SAS.FC等等. IDE是俗称的并口,SATA是俗称的串口,这两种硬盘是个人电脑和低端服务器常见的硬盘.SCSI是"小型计算机系 ...
- Scala 深入浅出实战经典 第64讲:Scala中隐式对象代码实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- [转] js == 与 === 的区别
1.对于string,number等基础类型,==和===是有区别的 1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等 2)同类型比较,直接进 ...
- memcached命令
memcached相对于redis来说,简直简单太多,命令也少很多,一般应用都是使用redis,但了解一下也还是不错的. 具体命令和用法很参见:http://www.runoob.com/memcac ...
- A/B测试
昨天把前段时间开发的二胡调音器的应用发布到了亚马逊应用程序商店,看到了一个A/B测试的标签,了解一下A/B测试的工作原理. A/B测试是一种新兴的网页优化方法,可以用于增加转化率注册率等网页指标. 使 ...
- Spring3系列11- Spring AOP——自动创建Proxy
Spring3系列11- Spring AOP——自动创建Proxy 在<Spring3系列9- Spring AOP——Advice>和<Spring3系列10- Spring A ...
- 关于 Visual Studio 调试 Global 的一点总结
在开发 MVC 的项目中遇到了些问题,想通过调戏查看找问题的原因,发现无法调试 Global 中的 Application_Start 方法,在网上找遍了也没有相应的解决办法,在经过了很多次尝试之后仍 ...