我们如何通过将一个密度图保持不变(在所有方面)用于比较场景来在 ggplot2 中创建多个密度图?

How can we create multiple density plots in ggplot2 by keeping one density plot as constant (in all facets) for the comparison scenario?

我有与不同类型车辆(比如汽车、摩托车、卡车、公共汽车等)相关的速度数据,我想展示这些不同类型车辆的速度与速度相比有何不同汽车.

例如:在上述情况下,应创建 3 个面来显示密度(比较即(汽车与摩托车、汽车和卡车、汽车和公共汽车)

提前致谢..!!!

如评论中所述,您需要创建一个额外的 dataframe,它将为您的构面的每个成员显示相同的密度图。让我们以 diamonds 数据集为例,我们将 "Fair" 削减作为我们的基线:

# We use expand.grid to crate new data with same values for all levels
fair_data <- expand.grid(carat = diamonds$carat[diamonds$cut == "Fair"], 
                         cut = levels(diamonds$cut)[-1]) # We omit "Fair"

# Plug into ggplot
ggplot(subset(diamonds, cut != "Fair"), 
       aes(carat, colour = cut)) +
  geom_density() +
  geom_density(data = fair_data, colour = "black") +
  facet_wrap(~cut)