1、使用图像
#引言
#3.1使用图形
#(1)交互
dt<-matcars
#指定哪一张表
attach(mtcars)#加入搜索路径
plot(wt,mpg)#画散点图
title("6666")#加标题
abline(lm(mpg~wt))#做拟合直线
detach(mtcars)#从默认的搜索路径中删除,避免影响其它程序
#(2)图像的保存
#pdf("abc.pdf")#图像的保存
jpeg("abc.jpeg")
dt<-matcars
#指定哪一张表
attach(mtcars)#加入搜索路径
plot(wt,mpg)#画散点图
title("6666")#加标题
abline(lm(mpg~wt))#做拟合直线
detach(mtcars)#从默认的搜索路径中删除,避免影响其它程序
dev.off()
#(3)新窗口
#指定哪一张表
attach(mtcars)#加入搜索路径
dev.new()#加入新窗口
plot(wt,mpg)#画散点图
title("6666")#加标题
abline(lm(mpg~wt))#做拟合直线
detach(mtcars)#从默认的搜索路径中删除,避免影响其它程序
2、一个简单的例子
#3.2一个简单的例子
#(1)数据的输入
dose<-c(20,30,40,45,60)
drugA<-c(16,20,27,40,60)
drugB<-c(15,18,25,31,41)
#(2)点线图绘制
plot(dose,drugA)#散点图
plot(dose,drugA,type="b")#同时绘制点和折线
3、图形参数
#3.3图形参数
#(1)全局图形参数与局部图形参数
#局部图形参数:只在一行语句内起效果
plot(dose,drugA,type = "b",lty=2,pch=17)#lty是虚线,pch使得圆点变成三角
#全局图形参数:所有语句都是这种画法
plot(dose,drugA,type="b")
opar<-par(no.readonly = TRUE)#用来保存当前图形参数为了后面还原
par(lty=2,pch=17)#设置全局参数
plot(dose,drugA,type="b")
par(opar)#恢复原来的图形参数
plot(dose,drugA,type="b")
#(2)符号和线条
plot(dose,drugA,type="b",lwd=5)#lwd线条变成5倍
plot(dose,drugA,type="b",cex=4)#标识变大
#(3)颜色
plot(dose,drugA,type="b",col=2)#线条颜色
plot(dose,drugA,type="b",col.axis=2)#坐标轴颜色
#(4)文本属性
plot(dose,drugA,type="b",cex.lab=5)#字体:标签大小
plot(dose,drugA,type="b",font.lab=3)#字体:斜体
#(5)尺寸
dev.new()
par(mai=c(.1,.1,.1,.1))#设置页边距
plot(dose,drugA,type = "b",cex.lab=1.5,font.lab=3)
4、添加文本、自定义坐标轴和图例
1、添加文本
#3.4.1标题的修改
dose<-c(20,30,40,45,60)
drugA<-c(16,20,27,40,60)
drugB<-c(15,18,25,31,41)
#方法一:合起来写
plot(dose,drugA,type = "b",col="red",lty=2,pch=2,lwd=2,
main="这是标题",
sub="这是副标题",
xlab="x轴",ylab="y轴",
xlim=c(0,60),ylim=c(0,70))
#方法二:图和标题分开写
plot(dose,drugA,type = "b",col="red",lty=2,pch=2,lwd=2)
title(main="这是标题",
sub="副标题",
col.main="red",
col.sub="blue",
)
2、坐标轴
#3.4.2坐标轴的修改
x<-c(1:10)
y<-x
z<-10/x
#把原始格式先保存
opar<-par(no.readonly = TRUE)
#1)先画出图形并清除格式
plot(x,y,type = "b",
pch=21,col="red",
yaxt="n",lty=3,ann=FALSE)#yaxt、ann将可能存在的标题给抑制掉
lines(x,z,type = "b",pch=22,col="blue",lty=2)#绘制x与y的关系
#2)添加坐标轴
axis(2,at=x,labels=x,col.axis="red",las=2)#添加刻度及颜色
axis(4,at=z,label=round(z,digits=2),col.axis="blue",las=2,cex.axis=0.7,tck=-.01)
mtext("y=1/x",side=3,line=3,cex.lab=1,las=0,col="blue")
title("An EXAMPLE",xlab="my xx",ylab="my yy")
abline(h=c(1,5,7))#加参考线
abline(v=seq(1,10,2),lty=2,col="blue")#加参考线
#恢复原始格式参数
par(opar)
3、添加图例
#添加图例
#1)添加数据
dose<-c(20,30,40,45,60)
drugA<-c(16,20,27,40,60)
drugB<-c(15,18,25,31,41)
#2)设置全局参数
par(lwd=2,cex=1,font.lab=2)
#3)画图
plot(dose,drugA,type="b",
pch=15,lty=1,col="red",
main="Drug A vs. Drug B",
xlab="Drug Dosage",ylab="Drug Response")
lines(dose,drugB,type="b",
pch=17,lty=2,col="blue")
#4)添加参考线
abline(h=c(30),col="gray",lwd=1.5,lty=2)
#5)图例
legend("topleft",inset=.05,title="Drug Type",cex=0.4,c("A","B"),
lty=c(1,2),pch=c(15,17),col=c("red","blue"))#在左边开始的5%放置图例
4、如何在图上面添加文本
#3.4.5文本的标注
dt<-mtcars
attach(mtcars)
plot(wt,mpg,main="vsvs",xlab="weight",ylab="mileage",
pch=18,col="blue")
#文本标注(对对应的点进行标注)
text(wt,mpg,row.names(mtcars),cex=0.5,pos=4,col="red")
5、图形的组合
#3.5图形的组合
#1.par(mfrow())的用法
#将画布划分为几行几列
attach(mtcars)
opar<-par(no.readonly = TRUE)
par(mfrow=c(2,2))#将画布分成两行两列
plot(wt,mpg,main="pic 1")
plot(wt,disp,main="pic 2")
hist(wt,main="pic 3")
boxplot(wt,main="pic 4")
par(opar)
detach(mtcars)
#2.layout(matrix)的用法:相较于上一个函数划分的更加的精细了
attach(mtcars)
opar<-par(no.readonly = TRUE)
#2,2分成两行两列
#c(1,1,2,3)在1,2区域放1号图,在3号区域放2号图
#按照行进行排列
layout(matrix(c(2,3,1,1),2,2,byrow = TRUE))
hist(wt)
hist(mpg)
hist(disp)
par(opar)
detach(mtcars)
#3.par(fig())的用法:更加地精细
attach(mtcars)
opar<-par(no.readonly = TRUE)
par(fig=c(0,0.8,0,0.8))#在图的横轴的0到80%画图,纵轴的0到80%画图
plot(wt,mpg)
par(fig=c(0,0.8,0.5,1),new=TRUE)#在图的横轴的0到80%画图,纵轴的0到80%画图
boxplot(wt,horizontal = TRUE,axes=FALSE)
par(fig=c(0.65,1,0,0.8),new=TRUE)
boxplot(mpg,axes=FALSE)
par(opar)
detach(mtcars)