【R语言学习笔记】10、R如何画图之一

本文章大部分内容参照自:https://blog.csdn.net/Clairezwj/article/details/81134814

1. 简单的画图例子

  • 相关数据集:
    【R语言学习笔记】10、R如何画图之一_第1张图片
  • 执行命令进行画图:
> 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")

注: 该例中plot()的第3个参数type="b"是指定所画的图既有圆点,又有线段连接。

  • 画图结果是:
    【R语言学习笔记】10、R如何画图之一_第2张图片

2. 图形参数

  • 图形参数可以通过 par()函数来设置:以这种方式设定的参数除非被再次修改,否则将会在会话结束前一直有效。所以一般在使用前,先将其最原始的默认状态赋值给一个变量,方便后面使用时快速使用默认的绘图参数。如下例的第一条语句:opar = par(no.readonly=TRUE),下次想让par()回复初始默认参数值,只需执行命令par(opar )
  • 调用格式为: par(optionname=value , optionname=name,…)
opar = par(no.readonly=TRUE)

dose<- c(20,30,40,45,60)
drug_a<- c(16,20,27,40,60)
drug_b <- c(15,18,25,31,40)
par(lty=2,pch=17)	 ##线条类型为虚线lty=2,点符号为实心三角形pch=17
plot(dose, drug_a, type="b")

注: par(lty=2,pch=17)中的各参数也可以直接写在plot()中,如:plot(dose, drug_a, type="b", lty=2, pch=17)

  • 效果如下:
    【R语言学习笔记】10、R如何画图之一_第3张图片

3. 符号和线条

【R语言学习笔记】10、R如何画图之一_第4张图片
参数pch=用于指定绘制点时使用的符号,可能的取值范围如下:
【R语言学习笔记】10、R如何画图之一_第5张图片
【R语言学习笔记】10、R如何画图之一_第6张图片

4. 颜色

【R语言学习笔记】10、R如何画图之一_第7张图片
注: 在R 中可以通过颜色下标,颜色名称,十六进制的颜色值, RGB 值, HSV 饱和值来指定颜色。 例如下面写法均代表白色

col=1 / col="white" / col="#FFFFFF" / col=rgb(1,1,1) / col=hsv(0,0,1)

5. 文本及字体

  • 用于指定文本大小的参数:
    【R语言学习笔记】10、R如何画图之一_第8张图片

  • 用于指定字体族、字号、字样的参数选项:
    【R语言学习笔记】10、R如何画图之一_第9张图片

图形尺寸,边界大小:

【R语言学习笔记】10、R如何画图之一_第10张图片

示例

dev.new()
dose<- c(20,30,40,45,60)
drug_a<- c(16,20,27,40,60)
drug_b <- c(15,18,25,31,40)
par(pin=c(2,3)) 	##设置图形两英寸宽, 3英寸高
par(lwd=2,cex=1.5) 	#线条为默认两倍,文本大小是默认值的1.5 倍
par(cex.axis=.75, font.axis=3) 	#坐标轴的文本大小是是默认值的0.75倍,坐标轴字体样式是斜体
plot(dose, drug_a,type="b",lty=2,pch=17,col="red" )

效果如下:
【R语言学习笔记】10、R如何画图之一_第11张图片

6. 添加标题和自定义坐标轴名称等信息:

dev.new()
plot(dose, drug_a,type="b",lty=2,pch=17,col="red", 
     main="药物A的反应曲线", 	## main是主标题
     sub="这是一个测试数据", 		## main是副标题
     xlab="剂量", ylab="病人的反应", 		## x和y轴的名称
     xlim=c(0,60), ylim = c(0,70))	#指定x和y轴的刻度

效果如下:
【R语言学习笔记】10、R如何画图之一_第12张图片

另一种方式

  • 先绘制大致图,
x <- c(1:10)
y <- x
z <- 10/x
opar <- par(no.readonly = TRUE)
par(mar=c(5,4,4,8) + 0.1)	#对图形边界进行设置。
plot(x,y, type = "b", 
		pch=21, 	#符号设置为圆圈
		col="red", 	#颜色设为红色
		yaxt="n", 	#对y轴的刻度暂时禁用,等会再自定义
		lty=3, 	#线条类型
		ann = FALSE)	#让x和y轴的名称先不显示,等会再自定义

上述代码执行后生成下图效果:
【R语言学习笔记】10、R如何画图之一_第13张图片

  • 再对坐标刻度、图名、坐标名等信息进行设置,用axis()坐标轴函数
    其中axis()坐标轴函数参数选项如下:
    【R语言学习笔记】10、R如何画图之一_第14张图片
 axis(2,	#为2表示在图形左边绘制坐标轴刻度
      at=y,	#用y这个向量的值作为坐标轴刻度
      labels=c(1:10),	#坐标轴刻度的值,在本例中也可直接写成labels=x
 	  col.axis="blue",	#坐标轴的颜色是蓝色
 	  las=2)	#坐标轴的刻度垂直与坐标轴
lines(x, z, type="b", pch=22, col="green", lty=2) 	#lines()是添加一条新的线
axis(4, at=z, labels = round(z, digits = 2), col.axis="black", las=2, cex.axis=.7) 	#设置新添加的线的坐标轴信息
title(main="坐标轴的例子",xlab="x轴",ylab="y轴")	#设置图的名字及各轴的名字

效果如下:
【R语言学习笔记】10、R如何画图之一_第15张图片

参考线:

abline(v=c(1,100,20), h=c(1,100,20), col="blue“) 在x轴、y轴 10,30,50,90添加蓝色实线。

Legend():

legend(location , title , legend ,...)

【R语言学习笔记】10、R如何画图之一_第16张图片

添加注释:

text()mtext()
【R语言学习笔记】10、R如何画图之一_第17张图片

例子:

dev.new()
par(lwd=2, cex=1.5, font.lab=2)
axis(xlab="Does", ylab="Drug")
 
plot(dose, drug_a, type="b",pch=15, lty=1, col="red",
     xlim=c(20,70), ylim = c(10,70), main="Drug A VS Drug B")
lines(dose , drug_b,type="b",pch=17, lty=2,col="blue",
       xlim=c(20,70), ylim = c(10,70) )
abline(h=c(30), col="gray")
 
legend("topleft",inset=.05, title="Drug Type" ,c("A", "B"), col=c("red","blue"), lty=c(1,2), pch = c(15,17))
text(dose, drug_a,"A",pos=3, col="red")
text(dose, drug_b,"B",pos=4, col="blue")

效果如下:
【R语言学习笔记】10、R如何画图之一_第18张图片

你可能感兴趣的:(R语言学习笔记)