第 4 章 長條圖

基本圖型

d <- ggplot(mpg, aes(fl))
d + geom_bar()

drv不同而填上不同顏色

s <- ggplot(mpg, aes(fl, fill = drv))
s + geom_bar()

4.1 幾何位置(position)

圖4.1: 幾何圖形的位置

geom_bar(position="XXX")其中XXX有以下選擇:

  • dodge:躲避
  • fill:填滿(標準化成同高度,呈現比重變化用)
  • stack:疊上
s <- ggplot(mpg, aes(fl, fill = drv))
s + geom_bar(position = "dodge")

試試看fill

4.2 類別排序

mpg2<-mpg
mpg2$drv %>% as.factor -> mpg2$drv
mpg2$drv %>% levels
## [1] "4" "f" "r"
mpg2$drv %>% ordered(levels=c("r","4","f")) -> mpg2$drv
s <- ggplot(mpg2, aes(fl, fill = drv))
s + geom_bar(position = "dodge")

4.3 縱軸安排

內定是由系統來count(計算個數), 你也可以自己算。

記算各類數目,存在新的變數叫number

mpg2 %>% group_by(fl,drv) %>%
  mutate(number=n()) %>% 
  ungroup %>%
  select(fl,drv,number) -> mpg2.partial
  • y軸必需使用自己算的結果。
  • stat="identity"
ggplot(mpg2.partial)+
  geom_bar(aes(x=fl,y=number,fill=drv),
           position = "dodge",
           stat="identity")

4.4 缺乏類別

mpg2.partial %>% add_row(fl=c("c","c","d"),
                         drv=c("r","4","r"),
                         number=c(0,0,0)) -> mpg2.partial
ggplot(mpg2.partial)+
  geom_bar(aes(x=fl,y=number,fill=drv),
           position = "dodge",
           stat="identity")

請用mpg2.partial產生下面的圖形。三個顏色分別是"#8bc900","#e4b9d2","#e81f3f"

4.4.1 轉軸

ggplot(mpg2.partial)+
  geom_bar(aes(x=fl,y=number,fill=drv),
           position = "dodge",
           stat="identity") +
  coord_flip()