R语言学习笔记——入门篇:第三章-图形初阶

R语言

R语言学习笔记——入门篇:第三章-图形初阶


文章目录

  • R语言
  • 一、使用图形
    • 1.1、基础绘图函数:plot( )
    • 1.2、图形控制函数:dev( )
    • 补充——直方图函数:hist( )
    • 补充——低级绘图函数:用来修饰图形
  • 二、示例
  • 三、利用par()函数与图形参数美化图形
    • 3.1、符号与线条
    • 3.2、颜色
    • 3.3、文本属性
    • 3.4、图形与边界尺寸
  • 四、添加标题,自定义坐标轴和图例
    • 4.1、标题
    • 4.2、坐标轴
    • 4.3、参考线
    • 4.4、图例
    • 4.5、文本标注
    • 4.6、数学标注
    • 补充——次要刻度线
    • 补充——网格线
  • 五、图形的组合
    • 5.1、par( )函数
    • 5.2、layout( )函数
    • 5.3、图形布局的精细控制


一、使用图形

1.1、基础绘图函数:plot( )

  • R中是一种交互式绘图风格
  • plot( ):最基础的图形绘制函数,其属于graphics包,会根据不同的数据类型形成不同的图形。
  • 语法
plot(a,b,type="value")
  • 参数
    • type:以什么样的形式来画a,b之间的关系:
      • “p”:点;
      • “l” :线;
      • “c”:仅有线,但不连续,在本应画点的地方断开了;
      • “b”:即有点又有线,点与线不相交;
      • “o”:即有点又有线,点与线相交,(overplot);
      • “h”:抽象成高密度的直方图;
      • “n”:图上没有任何的点,即空图,no plotting.
  • 其它格式
格式 注释
plot(x) 以x值为纵坐标,序号为横坐标绘图
plot(x,y) 以x值为横坐标,y值为纵坐标绘制散点图
plot(f) f是一个因子对象,产生f的直方图
plot(f,y) f是一个因子对象,y是数值向量,产生y在f各个水平下的箱线图
plot(data.frame) 产生数据框中各变量的分布图
plot(~x1+x2+x3) 对于形如x1+x2+x3的表列,产生各对象的分布图
plot(y~x1+x2+x3) y可以是任何对象,分别产生y对于x1,x2,x3各对象的图
  • 保存格式:
函数 功能
bmp(“filename.bmp”) BMP文件
jpeg(“filename.jpg”) JPEG文件
pdf(“filename.pdf”) PDF文件
png(“filename.png”) PNG文件
postscript(“filename.ps”) PostScript文件
svg(“filename.svg”) SVG文件
win.metafile(“filename.wmf”) Windows图元文件
  • 示例
pdf("mygraph.pdf") # 在当前工作目录下创建一个mygraph.pdf的文件
attach(x) # 绑定数据框x
plot(a,b) # 绘图
abline(lm(a~b)) # 向图形添加一条最优拟合曲线
title("This is a title") # 添加标题
detach(x) # 退出绑定
dev.off # 关闭图形页面(只有关掉后才能保存图形)

1.2、图形控制函数:dev( )

  • 一般在创建新图形时会覆盖掉之前的图片,下面有三种方法可以同时查看多个图片。

    • 方法一:利用 dev.new( ) 函数创建一个新的图形窗口
    • 方法二:利用 previous plot 和 next plot 按钮来查看已经绘制好的图形
    • 方法三:利用函数dev.new( ), dev.next( ), dev.prev( ), dev.set( )和dev.off( )同时打开多个图形窗口,并选择将那个图片输出到那个窗口。
  • dev( ):这一类函数可以在多个图形设备之间提供控制功能

  • 概念说明:

    • 活跃设备:当前正在操作的设备,同一时间只可能有一个活跃设备;
    • 空设备(null device):总是打开的,起着占位作用,编号始终是1;
    • 设备可以有各自的名字,同时有编号,从1到63;
  • dev相关类函数

    • dev.list():返回打开的设备的名单列表,但不包含空设备;
    • dev.off():关闭指定的设备(缺省情况下为当前设备);
      • 当前设备被关闭后,若还有打开的设备,则紧接着的下一个打开的设备变为当前设备;
      • 返回新打开的活跃设备的名字和编号。
      • 注意:设备1是不能被关闭的,即对设备1进行关闭操作是错误的;
    • graphics.off():关闭所有打开的设备;
    • dev.set(): 指定一个特定的设备为活跃设备,但若没有那个指定的设备,等同于dev.next();若指定设备的值为1,则打开一个新的设备,并且指定那个设备为活跃设备。
      • 返回新设备的名字和编号。
    • dev.new():打开一个新的设备。R中经常根据需要自动的打开新的设备,但也能使用跨平台的方式打开更多的设备;
      • 返回新设备的名字和编号。
    • dev.cur():查看当前的活跃设备;返回包含当前活跃设备的名字和编号的向量;如果是返回值是1,空设备,即没有活跃设备。
    • dev.next():查看紧随当前活跃进程的下一个进程;返回其名字和编号。
    • dev.prev():查看当前活跃进程的前一个进程;返回其名字和编号。

补充——直方图函数:hist( )

  • hist( ):直方图通过在x轴上建立一定数量的组别,在y轴上显示对应组别的频数来展示数值向量的分布。
  • 语法
hist(x, ...)
  • 参数
参数 参数说明
breaks 设置每个柱形的间距,即柱宽,实际上就是x轴的等分数,所以breaks越大,柱形宽度越小
freq 若为FALSE,表示y轴(柱形高度)为密度而不是频率
probability 若为FALSE,表示y轴是频率而不是频数
xlim 设置横轴范围
ylim 设置纵轴范围
axes 是否需要画坐标轴
plot 是否需要画图
nclass 改变分类数
density和angle 设置柱形上的斜线密度和角度
border 设置柱形边界的颜色

补充——低级绘图函数:用来修饰图形

函数 功能
points( ) 添加点
lines( ) 添加线
segments( ) 添加线段
abline( ) 添加直线
arrows( ) 添加带箭头线段
polygon( ) 添加封闭多边形
text( ) 添加文字

二、示例

Sys.setenv(LANGUAGE = "en")
options(stringsAsFactors = F)
rm(list = ls())
setwd("C:/Users/16748/Desktop")

dose <- c(20,30,40,45,60)
drugA <- c(16,20,27,40,60)
drugB <- c(15,18,25,31,40)

a <- plot(dose,drugA,type = "b")
  • 结果:
    R语言学习笔记——入门篇:第三章-图形初阶_第1张图片

三、利用par()函数与图形参数美化图形

  • R会尽可能的美化图形,但用户仍然可以使用图形参数来调整。
  • 方法一:通过par( )函数修改
    • 示例
opar <- par(no.readonly = T) # 备份了当前的图形参数设置
#不加参数no.readonly = T执行par( )将生成一个含有当前参数的列表,但是为只读格式,不能修改
par(lty = 2,pch = 17) # 修改为虚线(lty = 2)实心三角(pch = 17)
a <- plot(dose,drugA,type = "b")
# 绘制图形
par(opar)#还原原始设置

结果:
R语言学习笔记——入门篇:第三章-图形初阶_第2张图片

  • 方法二:通过参数值修改
    • 直接在plot时添加参数选项,这种情况下,指定的选项只对这幅图片生效
    • 示例
plot(dose,drugA,type = "b",main = "药物A剂量与响应的折线图",xlab = "剂量",ylab = "响应",lty = 2,pch = 17)

3.1、符号与线条

参数 功能
pch 指定绘制点时使用的符号(具体见下图)
cex 指定符号大小,默认值为1,2表示放大为默认值的两倍
lty 指定线条按类型
lwd 指定线条宽度,默认为1,lwd=2将生成2倍于默认值的线条(具体见下图)

R语言学习笔记——入门篇:第三章-图形初阶_第3张图片R语言学习笔记——入门篇:第三章-图形初阶_第4张图片

3.2、颜色

  • 调节颜色
参数 参数说明
col 默认的绘图颜色。某些函数(如line和pie)可以接受一个含有颜色值的向量并自动循环使用,例如col=c(“red”,“blue”),且需要绘制三条线,前两条分别为红,蓝,第三条会循环,变为红色
col.axis 坐标轴刻度文字的颜色
col.lab 坐标轴标签(名称)的颜色
col.main 标题颜色
col.sub 副标题颜色
fg 图形的前景色
bg 图形的背景色
  • 调节颜色:可以通过颜色下标,颜色名称,十六进制颜色,RGB值(红-绿-蓝)或HSV值(色相-饱和度-亮度值)来指定颜色
    • 例如:col=1, col=“white”, col=“#FFFFFF”, col=rgb(1,1,1)和col=hsv(0,0,1)都是表示白色
  • 查看颜色colors( ) 函数,查看所有可用颜色及其编号
  • 创建颜色型向量rainbow( ), heat.colors( ), terrain.colors( ), topo.colors( )和 cm.colors( ) 函数。
    • 例如 rainbow(10) 就可以产生10种连续的颜色。
    • 示例:brewer.pal(n,name)
install.packages("RColorBrewer")
library(RColorBrewer)
n <- 7
m <- 1
c <- brewer.pal(n,"Set1")
barplot(rep(m,n),col = c)
# rep(列值,行值),值不够会循环

brewer.pal.info #查颜色-列表
display.brewer.all() #查颜色-图例
  • 多阶灰度色grary(n:m)函数,元素值为0-1
    • 示例
mycolors <- rainbow(m)
pie(rep(1,m),labels = mycolors,col = mycolors)
mygrays <- gray(0:m/m)
pie(rep(1,m),labels = mygrays,col = mygrays)

3.3、文本属性

  • 字号,字形,字样都可以用图形参数来调整
  • 调节文本大小
参数 描述
cex 表示相对于默认大小缩放倍数的数值。默认大小为1,1.5 表示放大为默认值的1.5 倍,0.5 表示缩小为默认值的50%,等等
cex.axis 坐标轴刻度文字的缩放倍数。类似于cex
cex.lab 坐标轴标签(名称)的缩放倍数。类似于cex
cex.main 标题的缩放倍数。类似于cex
cex.sub 副标题的缩放倍数。类似于cex
  • 调节字体格式
参数 描述
font 整数。用于指定绘图使用的字体样式。1=常规,2=粗体,3=斜体,4=粗斜体,5=符号字体(以Adobe符号编码表示)
font.axis 坐标轴刻度文字的字体样式
font.lab 坐标轴标签(名称)的字体样式
font.main 标题的字体样式
font.sub 副标题的字体样式
ps 字体磅值(1 磅约为1/72 英寸)。文本的最终大小为ps*cex
family 绘制文本时使用的字体族。标准的取值为serif(衬线)、sans(无衬线)和mono(等宽)
  • 字体族(格式)介绍与扩展:Windows系统中,等宽字体映射为TT Courier New,衬线字体映射为TT Times New Roman,无衬线字体则映射为TT Arial(TT代表True Type)。
    • 如果对这些映射满意,就可以使用类似于family="serif"这样的参数获得想要的结果。
    • 或者直接创建新的映射。在Windows中,可以通过windowFont()来创建这类映射(在Mac,用quartzFonts( ))。
    • 示例
windowsFonts(
  A=windowsFont("Arial Black"),
  B=windowsFont("Bookamn Old Style"),
  C=windowsFont("Comic Sans Ms")
)
#在执行上述语句之后,即可以使用A、B、C作为family的值
par(family="A") #制定绘图字体
  • 输出时调整字体族:如果以PDF或者PostScript格式输出图形,修改字体族会相对简单。
    • PDF
      • 查找可用字体:names(pdfFonts())
      • 生成图形:pdf(file=“myplot.pdf”,family=“fontname”)
    • PostScript
      • 查找可用字体:names(postscriptFonts())
      • 生成图形:pdf(file=“myplot.ps”,family=“fontname”)

3.4、图形与边界尺寸

  • 控制图形尺寸和边界大小的参数
参数 描述
pin 以英寸表示的图形尺寸(宽和高),如c(4,3)
mai 以数值向量表示的边界的大小,顺序为"下、左、上、右",单位是英寸
mar 以数值向量表示的边界的大小,顺序为"下、左、上、右",单位是英分。默认值是从c(5,4,4,2)+0.1
  • 注:一英分=1/12英寸=0.21cm
  • 示例
par(pin=c(4,3),mai=c(1,.5,1,.2))
# 生成一副4英寸宽,3英寸高,上下边界各1英寸,左边界为0.5英寸,右边界为0.2英寸

四、添加标题,自定义坐标轴和图例

  • 许多高级的绘图函数(plot,hist,boxplot等)都允许有设置坐标轴和文本标注的参数选项。
  • 参数选项
    • 标题:main
    • 副标题:sub
    • 坐标轴标签:xlab,ylab
    • 坐标轴范围:xlim,ylim,如xlim=c(0,60)
  • 示例
plot(dose,drugA,type = "b",col = "red",
     lty = 2,pch = 2,lwd = 2,cex = .5,
     main = "Clinical Trials for Drug A",
     sub = "This is hypothetical data",
     xlab = "Dosage",ylab = "Drug Response",
     xlim = c(0,60),ylim = c(0,70))
  • 结果
    R语言学习笔记——入门篇:第三章-图形初阶_第5张图片
  • 注1:不是所有函数都有这类选项
  • 注2:有些函数已经包含了默认的标题和标签,需要在plot( )或者par( )中添加ann=FALSE来移除它们。

4.1、标题

  • 函数title( )
  • 参数:plot中适用于标题,坐标轴的参数类似添加文本,修改文本格式,修改大小颜色等都可以添加在title( )函数中

4.2、坐标轴

  • 函数axis( )
  • 参数
参数 描述
side 一个整数,指定在图形的哪边绘制坐标轴(1=下,2=左,3=上,4=右)
at 一个数值型向量,表明刻度线绘制的位置
labels 一个字符型向量,表明置于刻度线旁边的标签(如果为NULL,则将直接使用at中的值)
tick 一个逻辑值,表示是否画出坐标轴线和刻度线,默认为TRUE
line 坐标轴距离边距的行数(用于改变所画的图和坐标轴之间的间隔),line=NA表示没有间隔
pos 坐标轴线绘制位置的坐标(即与另一条坐标轴相交位置的值)
outer 一个逻辑值,设置坐标轴是否画在外部边距中,outer=FALSE表示把坐标轴画在标准边距中
font 文本的字体样式
lty 坐标轴线和刻度线的类型
lwd 坐标轴的线宽
lwd.ticks 刻度线的线宽
tck 刻度线的长度,以相对于绘图区域大小的分数表示(负值表示在图形外侧,正值表示在图形内侧,0表示禁用刻度,1表示绘制网格线);默认值为-0.01
col 坐标轴的颜色
col.ticks 刻度线的颜色
las 坐标刻度标签的方向。0表示总是平行于坐标轴,1表示总是水平的,2表示总是垂直于坐标轴
  • :在自定义坐标轴时,应当禁用高级绘图函数自动生成的坐标轴。参数axes=FALSE将禁用全部坐标轴(包括坐标轴框架线,除非添加了frame.plot=TRUE).参数xaxt=“n”yaxt=“n” 将分别禁用X轴或Y轴(会留下框架线,只是去除了刻度)。
  • 示例:
x <- c(1:10)
y <- x
plot(x,y,type="b",pch=21,col="red",yaxt="n",lty=3,ann=FALSE) # 绘制x对y的图形
axis(2,at=y,labels=round(y,digits = 2),col.axis="blue",las=2,cex.lab=1,cex.axis=0.7,tck=-0.01) # 绘制y轴,左侧绘制,在1-10上标记刻度线和数值,颜色设置为蓝色大小为0.7,y轴垂直于坐标轴,刻度线为向外0.01大小
  • 结果
    R语言学习笔记——入门篇:第三章-图形初阶_第6张图片

4.3、参考线

  • 函数abline( )
  • 语法
abline(a = NULL, b = NULL, h = NULL, v = NULL, ...)
# a、 b,截距和斜率,单个值。
# h、v,水平线y值,垂直线x值
# 也可以添加常见的图形参数
  • 示例
abline(h = c(1,5,7),lty = 2,col = "blue")
# 在y轴1,5,7位置添加了蓝色的水平虚线
abline(v = seq(1,10,2),lty = 1,col = "green")
# 在x轴1-10每个2个数值的位置添加了垂直的绿色实线
  • 结果
    R语言学习笔记——入门篇:第三章-图形初阶_第7张图片

4.4、图例

  • 函数legend( )
  • 语法
legend(location, title, legend)
参数 描述
location 有许多方式可以指定图例的位置。1.可以直接给定图例左上角的x,y坐标(直接看坐标轴确认), 2.也可将此参数设置为locator(1),然后通过鼠标单击给出图例的位置, 3.还可以使用关键字"bottom"、“bottomleft”、“left”、 “topleft”、“top”、“topright”、“right”、 "bottomright"或"center"放置图例,如果使用了上述某个关键字,那么可以同时使用参数inset=指定图例向图形内侧移动的大小(以绘图区域大小的分数表示)
title 图例标题的字符串(可选)
legend 图例标签所组成的字符型向量
fill 颜色值组成的向量,为图例创建颜色填充的盒形,(常见于条形图、箱线图或饼图)
col 颜色值组成的向量,图例标示的是颜色不同的线条
pch 符号代码组成的向量,用于图例标示的是符号不同的点
lwd、lty 宽度值或类型值组成的向量,用于图例标示的是不同的线条宽度或线条类型
angle 阴影线的角度
density 阴影线的密度
bty 图例边框的类型
bg 图例边框的背景色
cex 指定大小
text.col 指定文本颜色
horizen=TRUE 水平放置图例
box.lwd 边框线的宽度
box.lty 边框线的类型
box.col 边框线的颜色
  • 示例
Sys.setenv(LANGUAGE = "en")
options(stringsAsFactors = F)
rm(list = ls())
setwd("C:/Users/16748/Desktop")

dose <- c(20,30,40,45,60)
drugA <- c(16,20,27,40,60)
drugB <- c(15,18,25,31,40)
x <- data.frame(dose,drugA)
opar <- par(no.readonly = TRUE)
png("1.png",width = 480,height = 480)
par(lwd=2,cex=1.5,font.lab=2)
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 Response")
lines(dose,drugB,type="b",pch=17,lty=2,col="blue")
abline(h=c(30),lwd=1.5,lty=2,col="gray")
library(Hmisc)
minor.tick(nx=3,ny=3,tick.ratio = 0.5)
 legend(20,60,title="Drug Type",c("A","B"),
       lty=c(1,2),pch=c(15,17),col=c("red","blue"))
 text(dose,drugA,row.names(x),cex=0.9,pos=4,offset = .3,col="red")
dev.off()
  • 结果
    R语言学习笔记——入门篇:第三章-图形初阶_第8张图片

4.5、文本标注

  • 函数text( ), mtext( )
    • text( ): 向绘图区域内部添加文本
    • mtext( ): 向图形的四个边界之一添加文本
  • 语法
text(location,"text to place",pos,...)
mtext("text to place",side,line=n,...)
选项 描述
location 文本的位置参数。可为一对x,y坐标,也可通过指定location为locator(1)使用鼠标交互式地确定摆放位置
pos 文本相对于参数位置的方位。1=下,2=左,3=上,4=右。如果指定了pos,就可以同时指定offset=作为偏移量,以相对于单个字符宽度的比例表示。
side 指定用来放置文本的边。1=下,2=左,3=上,4=右。可以指定参数line=来内移或外移文本,随着值的增加,文本将外移。也可用adj=0将文本向左下对齐,或使用adj=1右上对齐
cex 调整字号
col 调整颜色
font 调整字体样式
  • 示例
x <- data.frame(dose,drugA)
text(dose,drugA,row.names(x),cex=0.9,pos=4,offset = .3,col="red")
  • 标记图形中的点:text()函数也通常用来标示图形中的点

    • 1、指定一系列x、y作为位置参数
    • 2、以向量形式指定要放置的文本。
    • 注意:x、y和文本标签向量的长度应当相同。
  • 获取点的坐标值:locator( )函数

    • 语法:
locator(n,type,...)
# n表示定位点的个数,每单击一次,将获得一个点的位置
# type表示在选择的点绘制指定的图形,默认不绘制

4.6、数学标注

  • 函数: plotmath( )
    • 可以为图形主体或边界上的标题、坐标轴名称或文本标注添加数学符号。

补充——次要刻度线

  • 函数minor.tick( ),Hmisc包
  • 语法
minor.tick(nx=n,ny=n,tick.ratio=n)
# nx和ny分别指定了X轴和Y轴每两条主刻度线之间通过次要刻度线划分得到的区间个数。
# tick.ratio表示次要刻度线相对于主刻度线的大小比例,当前主刻度线长度可以使用par("tck")获取
  • 示例
minor.tick(nx=2,ny=3,tick.ratio=0.5)
# 实现在X轴上每两条刻度线之间添加1条次要刻度线,在Y轴的每两条主刻度线之间添加2条次要刻度线,次要刻度线是主刻度线的一半。

补充——网格线

  • 函数grid( )
  • 语法
grid(nx=number1, ny=number2)
# nx水平线的数量
# ny垂直线的数量
  • 示例
grid(nx=5,ny=5,col="grey",lty=2,lwd=2)

五、图形的组合

  • 将一副图片的空间按行(列)划分为多个窗格,将多幅图片拼接起来
  • 拼接方法par( )函数, layout( )函数

5.1、par( )函数

  • 图形参数mfrow,mfcol
mfrow=c(nrows,ncols)
# 创建按行填充、行数为nrows、列数为ncols的图形矩阵
mfcol=c(nrows,ncols)
# 按列填充矩阵
  • 示例
Sys.setenv(LANGUAGE = "en")
options(stringsAsFactors = F)
rm(list = ls())
setwd("C:/Users/16748/Desktop")

png("1.png",width = 480,height = 480)
opar <- par(no.readonly = TRUE)
par(mfrow=c(2,2))
dose <- c(20,30,40,45,60)
drugA <- c(16,20,27,40,60)
drugB <- c(15,18,25,31,40)

plot(dose,drugA,type = "b",main = "药物A剂量与响应的折线图",xlab = "剂量",ylab = "响应")
plot(dose,drugB,type = "b",main = "药物B剂量与响应的折线图",xlab = "剂量",ylab = "响应")

hist(dose,main="Histogram of dose")
boxplot(dose,main="Boxplot of dose")
par(opar)
dev.off()
  • 结果
    R语言学习笔记——入门篇:第三章-图形初阶_第9张图片

5.2、layout( )函数

  • 图形参数:创建一个矩形matrix( ) 来划分区间,widths,heights参数来调整区间大小。
layout(matrix(vector, nrow = number_of_rows, ncol = number_of_columns , byrow = TRUE/FALSE, dimnames = list(rownames,colnames)),widths=c( ),heights=c( ))
# vector:数组中的数据,数据
# nrow行的维数
# ncol列的维数
# byrow表明矩阵按行填充(TURE)或按列填充(FALSE)
# dimnames:可选,各维度名称标签,各维度名称

# widths=各列宽值组成的一个向量
# heights=各行高度值组成的一个向量
  • 示例
Sys.setenv(LANGUAGE = "en")
options(stringsAsFactors = F)
rm(list = ls())
setwd("C:/Users/16748/Desktop")

png("1.png",width = 480,height = 480)
layout(matrix(c(1,1,2,3),2,2,byrow = TRUE),widths = c(3,1),heights = c(1,2))
dose <- c(20,30,40,45,60)
drugA <- c(16,20,27,40,60)
drugB <- c(15,18,25,31,40)
hist(dose)
hist(drugA)
hist(drugB)
dev.off()
#第一行图形是第二行图形高度的1/2,第一列图形的宽度是第二列图形宽度的2倍

  • 结果
    R语言学习笔记——入门篇:第三章-图形初阶_第10张图片

5.3、图形布局的精细控制

  • 图形参数fig( )
  • 原理
    fig( )会创建一个完整的绘图空间(所以要确保添加new=TRUE参数),左下角为(0,0),右上角为(1,1),fig( )形如一个c(x1,x2,y1,y2)的数值向量
    R语言学习笔记——入门篇:第三章-图形初阶_第11张图片
  • 示例
Sys.setenv(LANGUAGE = "en")
options(stringsAsFactors = F)
rm(list = ls())
setwd("C:/Users/16748/Desktop")

png("1.png",width = 480,height = 480)
opar <- par(no.readonly = TRUE)
dose <- c(20,30,40,45,60)
drugA <- c(16,20,27,40,60)
drugB <- c(15,18,25,31,40)
par(fig = c(0,0.8,0,0.8))
plot(dose,drugA,type = "b",main = "药物A剂量与响应的折线图",xlab = "剂量",ylab = "响应")
par(fig = c(0,0.8,0.55,1),new = T)
boxplot(drugA,horizontal = T,axes = F)
par(fig = c(0.65,1,0,0.8),new = T)
boxplot(drugB,horizontal = T,axes = F)

mtext("Enhanced Scatterplot",side=3,outer=T,line=-3)
# 用oma指定四个外边空的行数。
# 用mtext加outer=T指定在外边空添加文本。
# 如果没有outer=T则在内边空添加文本。
par(opar)
dev.off()
  • 结果
    R语言学习笔记——入门篇:第三章-图形初阶_第12张图片

你可能感兴趣的:(R语言,r语言,学习,开发语言)