3

ggplot2::geom_density()带有刻面的默认设置和ggridges::geom_density_ridges()产生的曲线略有不同。如何修改其中一种或另一种平滑技术以产生相同的结果?

library(tidyverse)
library(ggridges)

# standard density with facet by cyl ----
mtcars %>%
  ggplot(aes(x = mpg)) +
  geom_density(fill = "gray") +
  facet_wrap(. ~ factor(cyl, levels = c(8, 6, 4)), ncol = 1) +
  theme_minimal()

# density ridge with y = cyl ----
mtcars %>%
  ggplot(aes(x = mpg, y = factor(cyl))) +
  geom_density_ridges() +
  theme_minimal()
#> Picking joint bandwidth of 1.38

reprex 包(v0.2.1)于 2019 年 4 月 4 日创建

4

1 回答 1

1

您可以使用相同的统计信息geom_density()

library(tidyverse)
library(ggridges)

# standard density with facet by cyl ----
mtcars %>%
  ggplot(aes(x = mpg)) +
  geom_density(fill = "gray") +
  facet_wrap(. ~ factor(cyl, levels = c(8, 6, 4)), ncol = 1) +
  theme_minimal()

# density ridge with y = cyl ----
mtcars %>%
  ggplot(aes(x = mpg, y = factor(cyl))) +
  geom_density_ridges(stat = "density", aes(height = stat(density))) +
  theme_minimal()

reprex 包(v0.2.1)于 2019 年 4 月 4 日创建

或者,您可以获取报告的带宽并在(此处,)geom_density_ridges()中使用它。geom_density()bw = 1.38

library(tidyverse)
library(ggridges)

# density ridge with y = cyl ----
mtcars %>%
  ggplot(aes(x = mpg, y = factor(cyl))) +
  geom_density_ridges() +
  theme_minimal()
#> Picking joint bandwidth of 1.38

# standard density with facet by cyl ----
mtcars %>%
  ggplot(aes(x = mpg)) +
  geom_density(fill = "gray", bw = 1.38) +
  facet_wrap(. ~ factor(cyl, levels = c(8, 6, 4)), ncol = 1) +
  theme_minimal()

reprex 包(v0.2.1)于 2019 年 4 月 4 日创建

最后两个图看起来略有不同,因为它们具有不同的 x 轴限制。

于 2019-04-04T19:31:14.097 回答