ggplot2 - 多圖繪製



本章將重點介紹如何建立多個繪圖,這些繪圖可進一步用於建立三維繪圖。我們將介紹以下幾種繪圖:

  • 密度圖
  • 箱線圖
  • 點圖
  • 小提琴圖

我們將使用前面章節中使用的“mpg”資料集。此資料集提供了1999年和2008年38款流行汽車的燃油經濟性資料。該資料集與ggplot2包一起提供。建立不同型別的繪圖,務必遵循以下步驟。

> # Load Modules
> library(ggplot2)
>
> # Dataset
> head(mpg)
# A tibble: 6 x 11
manufacturer  model   displ   year   cyl   trans       drv   cty   hwy  fl   class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi        a4      1.8     1999   4     auto(l5)    f     18    29   p    compa~
2 audi        a4      1.8     1999   4     manual(m5)  f     21    29   p    compa~
3 audi        a4      2       2008   4     manual(m6)  f     20    31   p    compa~
4 audi        a4      2       2008   4     auto(av)    f     21    30   p    compa~
5 audi        a4      2.8     1999   6     auto(l5)    f     16    26   p    compa~
6 audi        a4      2.8     1999   6     manual(m5)  f     18    26   p    compa~

密度圖

密度圖是資料集中任何數值變數分佈的圖形表示。它使用核密度估計來顯示變數的機率密度函式。

“ggplot2”包包含一個名為geom_density()的函式,用於建立密度圖。

我們將執行以下命令來建立密度圖:

> p −- ggplot(mpg, aes(cty)) +
+  geom_density(aes(fill=factor(cyl)), alpha=0.8)
> p

我們可以從下面建立的圖中觀察到各種密度:

Density Plot

我們可以透過重新命名x軸和y軸來建立繪圖,這透過包含標題和圖例以及不同的顏色組合來保持更好的清晰度。

> p + labs(title="Density plot",
+    subtitle="City Mileage Grouped by Number of cylinders",
+    caption="Source: mpg",
+    x="City Mileage",
+    fill="# Cylinders")
Density Plot

箱線圖

箱線圖,也稱為箱須圖,表示資料的五數概括。五數概括包括最小值、第一四分位數、中位數、第三四分位數和最大值等值。穿過箱線圖中間部分的垂直線被認為是“中位數”。

我們可以使用以下命令建立箱線圖:

> p <- ggplot(mpg, aes(class, cty)) +
+  geom_boxplot(varwidth=T, fill="blue")
> p + labs(title="A Box plot Example",
+    subtitle="Mileage by Class",
+    caption="MPG Dataset",
+    x="Class",
+    y="Mileage")
>p

在這裡,我們根據類別和cty屬性建立箱線圖。

Box Plot

點圖

點圖類似於散點圖,只是維度不同。在本節中,我們將向現有的箱線圖新增點圖,以獲得更好的影像和清晰度。

可以使用以下命令建立箱線圖:

> p <- ggplot(mpg, aes(manufacturer, cty)) +
+    geom_boxplot() +
+    theme(axis.text.x = element_text(angle=65, vjust=0.6))
> p
Dot Plot

點圖的建立方法如下:

> p + geom_dotplot(binaxis='y',
+    stackdir='center',
+    dotsize = .5
+    )
Dot Plot

小提琴圖

小提琴圖的建立方式也類似,只是結構上用小提琴代替了箱子。輸出結果如下所示:

> p <- ggplot(mpg, aes(class, cty))
>
> p + geom_violin()
Violin Plot
廣告