#3.1 使用图形
> pdf("mygraph.pdf") #结果输出为pdf
> attach(mtcars)
> plot(wt,mpg) #绘制散点图
> abline(lm(mpg~wt)) #添加拟合曲线
> title("Regression of MPG on weight") #加名称
> detach(mtcars)
> dev.off() #输出pdf结束
##打开多个图形界面
?dev.cur
dev.new() #打开一个新的界面
dev.set() #设置为当前输出界面
dev.list() #打开界面的数量
dev.off()
dev.next()
dev.prev()
###或者使用图形界面窗口——history——recording(previous/next)
###图象输出函数
if(FALSE){
pdf('filename.pdf') #输出PDF
png('filename.png') #png
jpeg('filename.jpg') #jpeg文件
bmp('filenme.bmp') #BMP文件
最后使用dev.off()将输出返回到终端
}
##!也可以使用图形界面的“另存为”
#3.2 例子说明
help(plot)
> 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") #type表示绘图类型,“b"表示有点有线
##修改图形参数:
par() #第一种方法
opar<-par(no.readonly = TRUE) #生成一个可以修改的当前图形参数列表
par(lty=2,pch=17) #这种设置在会话结束前一直有效
plot(dose,drugA,type="b")
par(opar) #还原原始设置
plot(x,y,……) #第二种方法:高级参数中自带图形绘制参数
?plot
?hist
?boxplot
help(par)
##图形参数
If(FALSE){
pch #绘制点时使用的符号
cex #绘图符号的大小
lty #指定线条类型
lwd #指定线条宽度}
#pch 符号代表的含义
plot(dose,drugA,type="b",lty=3,lwd=2,pch=15,cex=2)
###颜色
If(FALSE){
col #绘图时默认的颜色
col.axls #坐标轴刻度文件的颜色
col.lab #坐标轴标签颜色
col.main #标题颜色
col.sub #副标题颜色
fg #图形的前景色
bg #图形的后景色
#可以通过col=1,col="white",col=”#FFFFFF",col=rgb(1,1,1)【基于红-绿-蓝三色值,help(rgb()了解更多】,col=hsv(0,0,1)【基于色相-饱和度-亮度生成,help】等方式生成颜色
colors()函数查看所有颜色
还有其他颜色函数,例如rainbow(),heat.colors(),terrain.colors(),topo.colors(),cm.colors(),grey()等
}
> n<-10
> mycolors<-rainbow(n)
> pie(rep(1,n),labels=mycolors,col=mycolors)
> mygrays<-grey(0:n/n)
> pie(rep(1,n),labels=mygrays,col=mygrays)
##文本属性(字体,字号,字样)
If(FALSE){
cex #缩放倍数
cex.axis #坐标轴刻度文字的缩放倍数
cex.lab #坐标轴标签缩放倍数
cex.main #标题缩放倍数
cex.sub #副标题缩放倍数
#字体,字号
font #整数(1=常规,2=粗体,3=斜体,4=粗斜体,5=符号字体)
font.axit
font.lab
font.main
font.sub
ps #字体磅值
family #字体族(serif=衬线,sans=无衬线,mono=等宽)此设置跟设备有关,在windows中还可以使用windowFonts()创建映射
#字体族
如果输出pdf/postscript中, 可以先names(pdfFonts());然后使用pdf(file="myplot.pdf",family="fondname")}
> windowsFonts(A=windowsFont("Arial Black"),B=windowsFont(("Bookman Old Style")))
> par(font.lab=3,cex.lab=1.5,font.main=4,cex.main=2,family=A)
> par(font.lab=3,cex.lab=1.5,font.main=4,cex.main=2,family="A")
> plot(dose,drugA)
###图形尺寸和边界尺寸
If(FALSE){pin #图形尺寸(宽和高),单位是英寸
mai #以数值向量表示的边界大小,顺序“下,左,上,右”,单位为英寸
mar #以数值向量表示的边界大小,顺序“下,左,上,右”,单位为英分
}
par(pin=c(4,3),mai=c(1,.5,1,.2))
##练习
If(FALSE){dose<-c(20,30,40,45,60)
drugA<-c(16,20,27,40,60)
drugB<-c(15,18,25,31,40)
opar<-par(no.readonly = TRUE)
par(pin=c(1,2))
par(lwd=2,cex=1.5)
par(cex.axis=.75,font.axis=3)
plot(dose,drugA,type="b",pch=9,lty=2,col="red")
plot(dose,drugB,type="b",pch=23,lty=6,col="blue",bg="green")
par(opar)
}