ggplot2回顧(9): 分面

1. 若干問題

1.1 分面和拼圖的適用范圍

分面:數(shù)據(jù)在一張表格上,存在若干個(gè)分類變量可以給數(shù)據(jù)分組,這時(shí)可以使用分面;
拼圖:已經(jīng)產(chǎn)生了多個(gè)圖(對(duì)象),需要拼在一起

1.2 facet_grid()和facet_wrap()的差異

facet_grid()本質(zhì)是二維; facet_wrap()本質(zhì)是一維

1.3 分面標(biāo)簽如何調(diào)整角度
1.4 并列與分面的比較

分面的一個(gè)優(yōu)勢(shì)是通過scales, space可以控制構(gòu)圖,見圖7.9

2. facet_grid()

mpg2 <- filter(mpg,mpg$cyl != 5 & mpg$drv %in% c("4","f"))
#不分面
ggplot(mpg2,aes(x=cty,y=hwy))+geom_point()+facet_null()
#一行多列
mpg2%>%ggplot(aes(cty,hwy))+geom_point()+facet_grid(.~mpg2$cyl)
#一列多行
mpg2%>%ggplot(aes(cty))+geom_histogram(binwidth = 2)+facet_grid(mpg2$cyl~.)
#多行多列
mpg2%>%ggplot(aes(cty,hwy))+geom_point()+facet_grid(mpg2$drv~mpg2$cyl)
2.1 邊際圖(與列聯(lián)表效果類似)
ggplot(mpg2,aes(cty,hwy))+geom_point()+geom_smooth(aes(color=drv),method = "lm",se=F)+
  facet_grid(drv ~ cyl,margins = T)

#facet_grid(mpg2$drv ~ mpg2$cyl,margins = T) #不行

3. facet_wrap()

封裝分面(對(duì)于單個(gè)多水平變量非常有用,比如染色體數(shù)量)

ggplot(diamonds,aes(x=diamonds$carat,y=..density..))+geom_histogram()+
 facet_wrap(.~diamonds$cut, ncol = 2)

4. 兩個(gè)參數(shù)

4.1 標(biāo)度控制scales

可選"fixed","free","free_x", "free_y"
分面之后,如果panel之間的x或y范圍差異大可以加上

library(reshape2)
em <- melt(economics,id="date")
em%>%ggplot(aes(date,value))+geom_line(aes(color=em$variable))
em%>%ggplot(aes(date,value))+geom_line()+
  facet_grid(variable ~ .,scales = "free_y")
4.2 space(facet_grid才有)

可選:"fixed","free","free_x", "free_y"
以free_x為例,每列的寬度與該列的標(biāo)度范圍成比例

mpg3 <- within(mpg2, {
  model <- reorder(model, cty)
  manufacturer <- reorder(manufacturer, -cty)
}) #這種內(nèi)在的排序可以學(xué)習(xí)一下
models <- ggplot(mpg3,aes(cty,model))+geom_point()
models
models+facet_grid(manufacturer~.,scales = "free",space = "free")

5. 對(duì)于連續(xù)型變量如何進(jìn)行分面?

首先需要將其轉(zhuǎn)換為離散型(這種思想在https://mp.weixin.qq.com/s/N5QU3X8IgKdVbOBjwpmcPg寫到過)

cut_interval(x,length = 1)#控制每部分的長(zhǎng)度一致,這里長(zhǎng)度都是1
cut_interval(x,n=10)#劃分為n個(gè)長(zhǎng)度相同的部分, 值域除以n為每部分的范圍
cut_number(x,n=10)#劃分為n個(gè)有(大概)相同數(shù)目點(diǎn)的部分
mpg2$displ_ww <- cut_interval(mpg2$displ,length = 1)
mpg2$displ_wn <- cut_interval(mpg2$displ,n=6)
mpg2$displ_nn <- cut_number(mpg2$displ,n=6)

plot <- ggplot(mpg2,aes(cty,hwy))+geom_point()+labs(x=NULL,y=NULL)
plot+facet_wrap(~displ_ww,nrow = 1)
plot+facet_wrap(~displ_wn,nrow = 1)
plot+facet_wrap(~displ_nn,nrow = 1)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.初識(shí)ggplot2 1.1 功能 是一個(gè)作圖包; 可以創(chuàng)建圖表,如散點(diǎn),柱狀圖,線圖,將數(shù)據(jù)可視化; 1.2 ...
    笨蛋白熊閱讀 46,251評(píng)論 0 27
  • 本文主要內(nèi)容翻譯整理自:Easy multi-panel plots in R using facet_wrap(...
    思考問題的熊閱讀 2,518評(píng)論 0 11
  • 一.基本概念 "一張統(tǒng)計(jì)圖形就是從數(shù)據(jù)到幾何對(duì)象(geometric object, 縮寫為geom, 包括點(diǎn)、線...
    apricoter閱讀 53,641評(píng)論 6 173
  • 1、分面設(shè)定 1.1 兩種分面設(shè)定 第一種分面是使用facet_grid()函數(shù),它允許指定變量作為橫向(或縱向)...
    100gle閱讀 3,481評(píng)論 0 2
  • 不做行程攻略的自由行是盲目的。 因?yàn)闆]有做行前的攻略,到沈園是我們一路跟著講解員去的。沈園實(shí)景配上專業(yè)講解,給予我...
    無公害的菜菜閱讀 916評(píng)論 2 3

友情鏈接更多精彩內(nèi)容