看教程不够直观,那就看视频吧! >>点击加载视频
箱线图是利用数据中最小值、第一四分位数、中位数、第三四分位数与最大值来描述数据的一种方法,
它也可以粗略地看出数据是否具有有对称性,分布的分散程度等信息。
采用boxplot创建一个箱线图:
基本语法:
boxplot(x,data,notch,varwidth,names,main)
参数:
x - 是一个向量或一个公式
data - 是数据帧
notch - 是一个逻辑值,若设置为TRUE画一个缺口。
varwidth - 是一个逻辑值,若设置为 true 时来画的宽度成正比到样本大小的方块。
names - 是将每个箱线图下被打印的组标签。
main - 用于给出曲线图的标题。
数据:
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
boxplot(mpg ~ cyl, data=mtcars)
箱线图与缺口
boxplot(mpg ~ cyl, data=mtcars,notch=TRUE,varwidth=TRUE)
美化:对颜色、坐标轴进行设置
boxplot(mpg ~ cyl, data=mtcars,notch=TRUE,varwidth=TRUE,xlab="Cylinders", ylab="Miles Per Gallon", main="Boxplot",col=c("red","yellow","blue"), names=c("Low","Medium","High"))
采用ggplot创建一个箱线图:
数据:
head(diamonds)
# A tibble: 6 × 10
carat cut color clarity depth table price x y z
<dbl> <ord> <ord> <ord> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43
2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31
3 0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31
4 0.29 Premium I VS2 62.4 58 334 4.20 4.23 2.63
5 0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75
6 0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48
最基本箱线图:
ggplot(diamonds,aes(x=cut,y=price))+geom_boxplot()
添加分类变量进行分组:
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()
分面:
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()+facet_grid(.~color)+theme(axis.text.x=element_text(angle=90))
ggplot(diamonds,aes(cut,price,fill=color))+ geom_boxplot()+ facet_wrap(~color)+theme(axis.text.x=element_text(angle=90))
美化:
ggplot(diamonds,aes(cut,price,fill=color))+geom_boxplot()+scale_fill_manual(values=rainbow(7))+xlab("cut of diamond ")+ylab("price of diamond")+labs(title ="boxplot of diamond")+theme(plot.title=element_text(hjust=0.5))
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!