[R语言]boxplot绘图经验总结

您所在的位置:网站首页 r语言怎么出图 [R语言]boxplot绘图经验总结

[R语言]boxplot绘图经验总结

#[R语言]boxplot绘图经验总结| 来源: 网络整理| 查看: 265

箱线图是统计分析里面最为重要且基础的图形,利用R语言绘制箱线图是数据分析里必不可少的一环。这里我总结了面对不同情形时,绘制箱线图的经验。

这里只介绍利用基础绘图命令boxplot,来绘制箱线图。 ● 给出一列数据,画出箱线图 library(RColorBrewer) Value=round(runif(50,min=10,max=50),2) colors = brewer.pal(8,"Accent") boxplot(Value,col = "white",cex=0.5, pch=20,outcol=colors[6], main = "Example",ylab="Value",xlab="Feature") stripchart(list(Value),vertical = T,method = "jitter",cex = 0.8, pch = 20,col = colors[1],add=T) dev.off() Example

这里,我们采用了stripchart函数以及RColorBrewer包来添加数据点并调整颜色。

● 给出两列数据,画出箱线图 Value1=round(runif(50,min=10,max=50),2) Value2=round(runif(50,min=6,max=45),2) colors = brewer.pal(8,"Accent") boxplot(Value1,Value2,col = "white",cex=0.5, pch=20,outcol=colors[6], main = "Example",ylab="Value",names =c("Feature1","Feature2")) stripchart(list(Value1,Value2),vertical = T,method = "jitter",cex = 0.8, pch = 20,col = colors[1:2],add=T) dev.off() Example2

注意,此时应当利用boxplot函数里面的内置参数names设置每个箱线图的特征名。并且将stripchart函数里面的数据用列表并起来。

● 给出按照分类变量划分,含有众多特征的dataframe,画出箱线图 library(dplyr) class = factor(c(rep(1,50),rep(2,50))) Value1=round(runif(50,min=10,max=50),2) Value2=round(runif(50,min=6,max=45),2) Dat = data.frame(class,Value1,Value2) colors = brewer.pal(8,"Accent") boxplot(Value1~class,Dat,col = "white",cex=0.5, pch=20,outcol=colors[6], main = "Example",ylab="Value") Dat1 = Dat %>% filter(class==1) Dat2 = Dat %>% filter(class==2) Dat3 = Dat %>% filter(class==3) Dat4 = Dat %>% filter(class==4) stripchart(list(Dat1[,"Value1"],Dat2[,"Value1"],Dat3[,"Value1"],Dat4[,"Value1"]), vertical = T,method = "jitter",cex = 0.8,pch = 20,col = colors[5:9],add=T) dev.off() Example3

这里,我们使用了dplyr包,将数据按照不同类别(1,2,3,4)来分成新的数据,并且,在boxplot函数里,不同于上述几种方式,其数据的给定是以公式的方式给出,形如“特征~类别,数据名”的样式。

箱线图美化 1. 我们会发现画2个箱线图组合时,箱线图的宽度太大,以至于这种箱线图看起来不美观,如Example2,此时我们可以通过在boxplot函数中指定位置,将箱线图显示在1和3的坐标轴上,起到缩小宽度的效果,当然添点也是如此。 Value1=round(runif(50,min=10,max=50),2) Value2=round(runif(50,min=6,max=45),2) colors = brewer.pal(8,"Accent") boxplot(Value1,Value2,col = "white",cex=0.5, pch=20,outcol=colors[6], main = "Example",ylab="Value",names =c("Feature1","Feature2"), at=c(1, 3), xlim=c(0, 4)) stripchart(list(Value1,Value2),vertical = T,method = "jitter",cex = 0.8, pch = 20,col = colors[1:2],add=T,at=c(1, 3)) dev.off() Example4 2. 当特征过多时,箱线图名称容易出现重叠的现象,此时需要对名称进行角度倾斜,而这在boxplot函数参数里面不能设置,此时我们需要取消横轴的命名,采用text函数,贴在画布上。 class = factor(c(rep(1,25),rep(2,25),rep(3,25),rep(4,25))) Value1=round(runif(50,min=10,max=50),2) Value2=round(runif(50,min=6,max=45),2) Dat = data.frame(class,Value1,Value2) colors = brewer.pal(8,"Accent") boxplot(Value1~class,Dat,col = "white",cex=0.5, pch=20,outcol=colors[6], main = "Example",ylab="Value",xlab="",xaxt="n") axis(side=1, at=1:4, labels=FALSE) text(c(1:4), x=1:4, y=6, xpd=T, srt=30) Dat1 = Dat %>% filter(class==1) Dat2 = Dat %>% filter(class==2) Dat3 = Dat %>% filter(class==3) Dat4 = Dat %>% filter(class==4) stripchart(list(Dat1[,"Value1"],Dat2[,"Value1"],Dat3[,"Value1"],Dat4[,"Value1"]), vertical = T,method = "jitter",cex = 0.8, pch = 20,col = colors[5:9],add=T) dev.off() Example5


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3