ggplot2 - 多图


在本章中,我们将重点关注多个绘图的创建,这些绘图可进一步用于创建 3 维绘图​​。将涵盖的地块列表包括 -

  • 密度图
  • 箱形图
  • 点图
  • 小提琴Plotly

我们将使用前面章节中使用的“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_densis() 的函数来创建密度图。

我们将执行以下命令来创建密度图 -

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

我们可以从下面创建的图中观察到各种密度 -

密度图

我们可以通过重命名 x 和 y 轴来创建绘图,这样可以通过包含不同颜色组合的标题和图例来保持更好的清晰度。

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

箱形图

箱线图也称为盒须图,表示数据的五数汇总。五个数字摘要包括最小值、第一四分位数、中位数、第三四分位数和最大值等值。穿过箱线图中间部分的垂直线被视为“中位数”。

我们可以使用以下命令创建箱线图 -

> 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 属性的箱线图。

箱形图

点图

点图与散点图类似,只是维度不同。在本节中,我们将在现有箱线图中添加点图,以获得更好的图片和清晰度。

可以使用以下命令创建箱线图 -

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

点图的创建如下 -

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

小提琴Plotly

小提琴图也以类似的方式创建,仅改变小提琴而不是盒子的结构。下面清楚地提到了输出 -

> p <- ggplot(mpg, aes(class, cty))
>
> p + geom_violin()
小提琴Plotly