Ggplot2 简明教程

ggplot2 - Multiple Plots

在本章中,我们将专注于创建多重图表,这些图表可以进一步用于创建三维图表。所涵盖的图表列表包括 -

  1. Density Plot

  2. Box Plot

  3. Dot Plot

  4. Violin Plot

我们将使用前面章节中使用的“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~

Density Plot

密度图是所述数据集中任何数值变量分布的图形表示。它使用核密度估计来显示变量的概率密度函数。

“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 plot1

Box 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

这里,我们根据 class 和 cty 的属性创建箱线图。

box plot

Dot 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 plot1

Violin Plot

小提琴图的生成方式也很类似,只是将箱形改成了小提琴形状。输出如下 −

> p <- ggplot(mpg, aes(class, cty))
>
> p + geom_violin()
violin plot