来自 R语言实战 第三章 图形初阶 示例代码
#####################第三章 图形初阶######################
rm(list = ls())
options(stringsAsFactors = F)
3.1 使用图形
?mtcars
head(car)
attach(mtcars)#绑定了数据框mtcars
plot(wt,mpg) #打开了一个图形窗口并生成了一幅散点图,
# 横轴表示车身重量,纵轴为每加仑汽油行驶的英里数
abline(lm(mpg~wt)) #添加了一条最优拟合曲线
title("关于wt和mpg的回归曲线")#标题
detach(mtcars) # 为数据框解除了绑定
#保存在pdf文件中
pdf("mtcar_wt_mpg.pdf")
#png("mtcar_wt_mpg.png") #还可以保存为图片等
attach(mtcars)
plot(wt,mpg)
abline(lm(mpg~wt))
title("mtcars_wt_mpg")
detach()
dev.off()
3.2 一个简单例子####
rm(list = ls())
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(x, y, type="b")将x置于横轴,将y置于纵轴,绘制点集(x, y),
#然后使用线段将其连接,选项type="b"表示同时绘制点和线
#"p" for points, "l" for lines, "b" for both points and lines,
# "c" for empty points joined by lines, "o" for overplotted points and lines,
# "s" and "S" for stair steps and "h" for histogram-like vertical lines.
# Finally, "n" does not produce any points or lines.
dev.new() #打开新窗口绘图
plot(dose,drugA,type = "l")
dev.off()
3.3 图形参数
opar <- par(no.readonly = T)
par(lty=2,pch=17) #指定图形参数选项
plot(dose,drugA,type = "b")
par(opar)
dev.off()
#首个语句复制了一份当前的图形参数设置。第二句将默认的线条类型修改为虚线(lty=2)
# 并将默认的点符号改为了实心三角(pch=17)。然后我们绘制了图形并还原了原始设置
plot(dose,drugA,type = "b",lty=2,pch=17) #以上等价于这个
dev.off()
3.3.1 符号和线条
相关参数: lty线条类型 lwd线条宽度 pch符号 cex符号大小
对于符号21~25,你还可以指定边界颜色(col=)和填充色(bg=)。
plot(dose,drugA,type = "b",lty=3,lwd=3,pch=15,cex=2)
其线条类型为点线,宽度为默认宽度的3倍,点的符号为实心正方形,大小为默认符号大小的2倍
3.3.2 颜色
在R中,可以通过颜色下标、颜色名称、十六进制的颜色值、RGB值或HSV值来指定颜色。
举例来说,col=1、col="white"、col="#FFFFFF"、col=rgb(1,1,1)和col=hsv(0,0,1)
都是表示白色的等价方式。函数rgb()可基于红—绿—蓝三色值生成颜色,而hsv()则基于色相—饱和度—亮度值来生成颜色。
函数colors()可以返回所有可用颜色的名称
rainbow(10) 生成10种彩虹色 gray(0:10/10)将生成10阶灰度色
n <- 10
mycolor <- rainbow(n) #生成彩虹色
pie(rep(1,n),lebels=mycolor,col = mycolor)
mygray <- gray(0:n/n) #生成多阶灰色
pie(rep(1,n),lebels=mygray,col = mygray)
3.3.3 文本属性
par(font.lab=3,cex.lab=1.5,font.main=4,cex.main=2)
plot(dose,drugA,type = "o")
title("dose_drugA")
dev.off()
创建的所有图形都将拥有斜体、1.5倍于默认文本大小的坐标轴标签(名称),以及粗斜体、2倍于默认文本大小的标题
3.3.4 图形尺寸与边界尺寸 ###总练习####
par(pin=c(4,3),mai=c(1,.5,1,.2))
plot(dose,drugA,type = "o")
dev.off()
#生成一幅4英寸宽,3英寸高,上下边界为1英寸,左边界为0.5英寸,右边界为0.2英寸的图形
###总练习
opar <- par(no.readonly = T)
par(pin=c(2,3))
par(lwd=2,cex=1.5)
par(cex.axis=.75,font.axis=3)
plot(dose,drugA,type = "b",pch=19,lty=2,col="red")
plot(dose,drugB,type = "b",pch=23,lty=6,col="blue",bg="green")
par(opar)
dev.off()
# 以向量的形式输入了数据,然后保存了当前的图形参数设置(这样就可以在稍后恢
# 复设置)。接着,你修改了默认的图形参数,这样,得到的图形将为2英寸宽、3英寸高。除此之
# 外,线条的宽度将为默认宽度的两倍,符号将为默认大小的1.5倍。坐标轴刻度文本被设置为斜
# 体、缩小为默认大小的75%。之后,我们使用红色实心圆圈和虚线创建了第一幅图形,并使用绿
# 色填充的绿色菱形加蓝色边框和蓝色虚线创建了第二幅图形。最后,我们还原了初始的图形参数
# 设置。