R in action整理
**各制图函数可设定参数不尽相同,可用?+function的命令具体查看对应函数可以设置的参数,?barplot **
1.制图流程
1)数据的输入或数据框的绑定 #attach()函数
2)opar<-par(no.readonly=TRUE) #增加新的作图设置
参数的设定 #par()函数
3)确定是否为多幅图形的组合
par(mfrow=c(1,3)) #三幅图,且三行一列排列,默认在一个正方形内排列,所以与此同时宽会是高的三倍
layout(matrix(c(1,1,2,3),2,2,byrow=TRUE,widths=c(3,1),heights=c(1,2))
默认按照1 2排列,byrow=TRUE加上后为1 1,可以指定宽和高的比例,精细控制见P65
1 3 2 3
3)选择制图种类及添加文本,自定义坐标轴及图例
4)数据框的解绑 #detach()
par(opar) #恢复原始作图设置
其中第三条利用par()函数进行设定的参数分为三类
少:仅仅用于询问不能被设定的参数:cin,cra,csi,cxy,dim
中:仅能通过par()设定参数:
参数 | 描述 | 例子 |
pin | 以英寸表示图形的尺寸 | pin=c(4,3),4英寸长,3英寸宽的图形 |
mai | 以数值向量表示边界大小,下左上右 | mai=c(1,.5,1,.2),英寸 |
mar | 以数值向量表示边界大小,下左上右 | 同上,默认值为c(5,4,4,2)+0.1 |
多:除了par(),也能在其他高级绘图函数中设定的参数。
| 参数 | 描述 | 例子 |
符号和线条 | pch | 点的类型(0-24) | pch=20,用20号点 |
cex | 点的大小(倍数) | cex=0.5,为默认点大小的1/2 | |
lty | 线条类型(1-6) | lty=1,用1号线 | |
ltw | 线条宽度(倍数) | ltw=1.5,为默认宽度的1.5倍 | |
颜色相关col | col.axis | 坐标轴刻度颜色 | col=("red","blue"),颜色可循环 |
col.lab | 坐标轴名称颜色 |
| |
col.main | 标题的颜色 |
| |
col.sub | 副标题的颜色 |
| |
fg | 图的前景色 |
| |
bg | 图的背景色 |
| |
文本大小相关cex | cex.axis | 坐标轴文字倍数 |
|
cex.lab | 坐标轴名称倍数 |
| |
cex.main | 标题的倍数 |
| |
cex.sub | 副标题的倍数 |
| |
字体字号相关font | font.axis | 坐标轴刻度文字样式 |
|
font.lab | 坐标轴名称文字样式 |
| |
font.main | 标题的文字样式 |
| |
font.sub | 副标题的文字样式 |
| |
ps | 字体磅值 |
| |
family | 字体族 |
|
2.图形样式
1)条形图P110,barplot(x,...)
*如果类别型变量为因子或有序性因子,则可以直接用函数plot(),否则要用table()函数将其表格化:
counts<-table(Arthritis$Improved)
①简单:barplot(counts,...)
②水平:barplot(counts,...,horiz=TRUE)
同时,若数据为矩阵而非向量,则绘图结果为堆砌条形图或分组条形图,同理先判断是否要表格化:
counts2<-table(Arthritis$Improved,Arthritis$Treatment)
③堆砌:barplot(counts2,...)
④分组:barplot(counts2,...,beside=TRUE)
最后的微调,都写在barplot中,修改标签文本:name.arg=c("...","...","..."))
⑤棘状图:spine(counts2,...)
2)饼图P116,pie(x,labels=,...)
slices<-c(10,12,4,16)
lbls<-c("US","UK","CHINA","FRANCE")
①简单:pie(slices,labels=lbls,...)
②加比例数值:
pct<-round(slices/sum(slices)*100)
lbls2<-paste(lbls,"",pct,%,sep="") #paste函数拼接,sep=表示参数之间的分隔符pie(slices,labels=lbls2,...)
③3D饼图:用plotrix包,pie3D(x,labels=lbls,...)
④扇形图:用Plotrix包,fan.plot(x,labels=lbls,...)
⑤从表格中创建饼图:P116
3)直方图P118,hist(x)
①简单:hist(x,...)
②加轴须图:
hist(x,...)
rug(x,...) #轴须图函数,反应数据密度
③添加正态密度曲线及外框:P118
4)核密度图P120,plot(density(x),...)
①简单:plot(density(x),...)
②跨组比较P121: #反应各变量的密度关系,创建分组因子→绘制密度图→添加图例
5)箱线图P122,boxplot(x,...)
①简单:boxplot(x,...)
②跨组比较P123:boxplot(formula,data=dataframe) #对比各变量的分布
③另有小提琴图(和密度图与箱线图的结合)
6)点图P127,dotchart(x,labels=)
3.大佬绘图教程