欢迎光临散文网 会员登陆 & 注册

ggplot绘制山岚图

2023-08-27 15:28 作者:五柳冰冰  | 我要投稿

## 山岚图

```{r}
library(ggridges)
p <- ggplot(iris, aes(x = Sepal.Length, y = Species,fill=Species))

p+ geom_density_ridges(alpha=.5)

p+ geom_density_ridges2(alpha=.5)

p+ geom_density_ridges(alpha=.5,scale = 1)
p+ geom_density_ridges(alpha=.5,scale = 2)
p+ geom_density_ridges(alpha=.5,scale = .9)

```

按照x数值着色

```{r}
p1 <- ggplot(iris, aes(x = Sepal.Length, y = Species,fill=after_stat(x)))

p1 + geom_density_ridges_gradient(scale = 1)

p1 + geom_density_ridges_gradient(scale = 1)+scale_fill_viridis_c()

```

添加分位数的线

```{r}
p+stat_density_ridges(quantile_lines = TRUE, quantiles = c(0.025, 0.975), alpha = 0.7)

p+stat_density_ridges(quantile_lines = TRUE, quantiles = c(0.025, 0.975), alpha = 0.7,scale = 1)
```

按分位数的线分割着色

```{r}
ggplot(iris, aes(x=Sepal.Length, y=Species, fill = factor(stat(quantile)))) +
  stat_density_ridges(
    geom = "density_ridges_gradient", calc_ecdf = TRUE,
    quantiles = 4, quantile_lines = TRUE,
    scale = 1) +
  scale_fill_viridis_d(name = "Quartiles")
```

按分位数的线分割着色2

```{r}
ggplot(iris, aes(x = Sepal.Length, y = Species, fill = factor(stat(quantile)))) +
  stat_density_ridges(
    geom = "density_ridges_gradient",
    calc_ecdf = TRUE,
    quantiles = c(0.025, 0.975),
    scale = 1 ) +
  scale_fill_manual(
    name = "Probability", values = c("#FF0000A0", "pink", "pink"),
    labels = c("(0, 0.025]", "(0.025, 0.975]", "(0.975, 1]")
  )
```
按概率密度值着色

```{r}
ggplot(iris, aes(x = Sepal.Length, y = Species, fill = 0.5 - abs(0.5 - stat(ecdf)))) +
  stat_density_ridges(geom = "density_ridges_gradient", calc_ecdf = TRUE,scale = 1) +
  scale_fill_viridis_c(name = "概率密度", direction = -1)
```


ggplot绘制山岚图的评论 (共 条)

分享到微博请遵守国家法律