> par(mfrow=c(1,3),mai=c(0.7,0.7,0.6,0.1),cex=0.7,cex.main=0.8)
> barplot(count1,xlab = "频数",ylab = "社区",horiz = TRUE,main = "(a)水平条形图",col=2:5)
> barplot(count2,xlab = "性别",ylab = "频数",main = "(b)垂直条形图")
> barplot(count3,xlab = "态度",ylab = "频数",main = "(b)垂直条形图",col = 2:3)
par函数:图形控制的参数设置函数:
常用参数:
cex:控制文字和绘图符号的大小,cex=1表示正常大小
font.lab:控制坐标轴标签的字体
lyt:设置线条类型
lwd:设置线条宽度
mai:参数是一个数值向量c(底部,左侧,上侧,右侧),设置图形边距大小,单位是英寸
mfcol:参数是一个数值向量c(nr,nc),用于将绘图区域分割成相应的行数和列数
mfrow:同mfcol,只是按行填充各图
pch:设置绘图点或符号的类型
barplot函数:绘制条形图
常用参数:
col:设置图形颜色
las:只能是0,1,2,3中的某一直,用于表示刻度值的方向,0-平行于坐标轴;1-总是水平方向;2-总是垂直于坐标轴;3-总是垂直方向。
plot函数:绘制散点图
常用参数:
type:设置绘图类型,p-绘点,l-绘线,b-点和线
axes:axes=FALSE,暂时禁止坐标轴的生成以便使用axis()函数添加你自己定制的坐标轴。默认情况是axes=TRUE,即包含坐标轴。
axis函数:添加坐标轴
常用参数
side:1=below, 2=left, 3=above and 4=right.
mtext函数:在图形空白处输入文本
常用参数:
line:在哪边线,从0开始计数
adj:调整每个字符串的阅读方向,adj=0-左对齐或下对其;adj=1-右对齐或上对齐
> par(mfrow=c(1,1),mai=c(0.7,1,0.1,1),cex=0.8)
> barplot(x,xlab = "社区",ylab = "频数",col = 2:4)
> y<-cumsum(x)/sum(x)
> par(new=T) #在当前图表中编辑
> plot(y,type="b",lwd=1.5,pch=15,axes=FALSE,xlab='',main='') #绘制散点图
> axis(4) #添加自定义坐标轴
> par(las=0)
> mtext("累计频率",side=4,line=3)
> mtext("累计分布曲线",line=-2.5,cex=0.8,adj=0.75)
复式条形图:包括并列条形图和堆叠条形图
> myinfo1<-table(myinfo$态度,myinfo$社区) #得到的数据态度为行,社区为列
> par(mfrow=c(1,2),cex=0.8)
> barplot(myinfo1,xlab = "社区",ylab = "频数",ylim = c(0,8),col = c("green","blue"),legend = rownames(myinfo1),args.legend = list(x=8),beside=TRUE,main = "社区并列条形图")
> barplot(myinfo1,xlab = "社区",ylab = "频数",ylim = c(0,8),col = c("green","blue"),legend = rownames(myinfo1),args.legend = list(x=4),main = "社区堆叠条形图")
barplot参数补充:
ylim:限制y轴的值
legend:添加图例
args.legend:将变量传递给legend,设置图例的位置
beside:默认值为FALSE,绘制堆叠条形图;beside=TRUE,绘制并列条形图。
> library(grid)
> library(vcd)
> addmargins(table(myinfo$态度,myinfo$社区))
社区A 社区B 社区C Sum
反对 2 1 2 5
赞成 6 3 6 15
Sum 8 4 8 20
spine(态度~社区,data = myinfo,xlab = "社区",ylab = "态度",margins=c(4,3.5,1,2.5))
spine函数
margins:设置边距
mosaicplot(~态度+社区+性别,data=myinfo,color=4:5,main = "")
mosaicplot函数
~右侧为类别变量,多个类别变量之间用“+”连接
饼图及其变种
> count1<-table(myinfo$社区)
> count1
社区A 社区B 社区C
8 4 8
> percent<-prop.table(count1)*100
> percent
社区A 社区B 社区C
40 20 40
> name<-names(count1)
> name
[1] "社区A" "社区B" "社区C"
> lable1<-paste(name," ",percent,"%",sep="")
> lable1
[1] "社区A 40%" "社区B 20%" "社区C 40%" #前期数据处理
> par(pin=c(3,3),mai=c(0.1,0.4,0.1,0.4),cex=0.8)
> pie(count1,labels=lable1,init.angle = 90) #init.angle=90 从12点钟位置开始,逆时针方向绘制
par函数
常用参数补充:
pin:设置维度??我也没弄明白
pie函数
pie(x, labels = names(x), edges = 200, radius = 0.8,clockwise = FALSE, init.angle = if(clockwise) 90 else 0, density = NULL, angle = 45, col = NULL, border = NULL,lty = NULL, main = NULL, ...)
x 表示一个非负的数值向量,表示每个扇形的面积。
labels代表各扇形面积标签的字符型向量。
radius 表示饼图的圆的半径,特别是在字符标签过长的情况尤其适用。
main 是用来表示图标的标题的。
col 是表示每个扇形的颜色,相当于调色板。
clockwise 是一个逻辑值,用来指示饼图各个切片是否按顺时针做出分割。
density:底纹的密度。默认值为NULL。
angle:设置底纹的斜率。
edges设置多边形的边数(圆的轮廓是具有很多边的多边形近似)。
> library(plotrix)
> pie3D(count1,labels=lable1,explode=0.1,labelcex=0.7,col = (4:6))
pie3D函数
explode:设置不同饼块之间的间隔
fan.plot函数
library(plotrix)
fan.plot(count1,labels = lable1,ticks = 10,col=c("grey30","grey70","red")) #ticks可以为逻辑值也可为数值,用于表示扇形图上的刻度数