12  facet()

facet_grid(),facet_wrap()

── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
✔ ggplot2 3.3.6      ✔ purrr   0.3.5 
✔ tibble  3.1.8      ✔ dplyr   1.0.10
✔ tidyr   1.2.1      ✔ stringr 1.4.1 
✔ readr   2.1.3      ✔ forcats 0.5.2 
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()

12.1 离散型变量

p<-ggplot(mpg,aes(displ, hwy , color = cyl)) + geom_point(alpha=0.5);p 

#连续型变量#
p+facet_grid(. ~ cyl) #一行多列#

p+facet_grid(cyl ~ .) #一列多行#

p+facet_grid(drv ~ cyl) #第一个纵坐标,第二个横坐标#

p+facet_wrap(~drv+cyl)

#离散型变量#
ggplot(mpg, aes(displ, hwy)) + 
geom_point() + 
facet_wrap(~class,ncol=4)#设置一行有4个#

12.2 连续型变量

p<-ggplot(mpg,aes(displ, hwy , color = cyl)) +geom_point(alpha=0.5);p 

#连续型变量#
p+facet_grid(. ~ cyl, scales="free_x") #一行多列#

p+facet_grid(cyl ~ ., scales="free_y") #一列多行#

p+facet_grid(drv ~ cyl, scales="free") #第一个纵坐标,第二个横坐标#

p+facet_wrap(~drv+cyl,scales="free")

#离散型变量#
ggplot(mpg, aes(displ, hwy)) + 
geom_point() + 
facet_wrap(~class,ncol=4, scales="free")#设置一行有4个#

12.3 不同分面标签的修改

#不同分面标签的修改#
p<-ggplot(mpg,aes(displ, hwy , color = cyl)) + geom_point(alpha=0.5) ;p

p+facet_grid(drv ~ cyl)

mpg2<-mpg
mpg2$drv<-as.factor(mpg$drv);mpg2$cyl<-as.factor(mpg$cyl)       
levels(mpg2$drv)[levels(mpg2$drv)=="4"]<-"4wd";levels(mpg2$drv)[levels(mpg2$drv)=="f"]<-"Front"
levels(mpg2$drv)[levels(mpg2$drv)=="r"]<-"Rear";levels(mpg2$cyl)[levels(mpg2$cyl)=="4"]<-"Four"
levels(mpg2$cyl)[levels(mpg2$cyl)=="5"]<-"Five";levels(mpg2$cyl)[levels(mpg2$cyl)=="6"]<-"Six"
levels(mpg2$cyl)[levels(mpg2$cyl)=="8"]<-"Eight"    
p<-ggplot(mpg2,aes(displ, hwy , color = cyl)) + geom_point(alpha=0.5) ;p      

p+facet_grid(drv ~ cyl) #第一个纵坐标,第二个横坐标#

12.4 不同分面标题外观的修改

p<-ggplot(mpg,aes(displ, hwy , color = cyl)) + 
geom_point(alpha=0.5) +facet_grid(drv ~ cyl);p

p+theme(strip.text=element_text(face="bold",size=rel(1.5)),
        strip.background=element_rect(fill="lightblue",color="red",size=rel(5)))