【问题标题】:Non-overlapping ridgeline plot R非重叠山脊线图 R
【发布时间】:2020-10-08 00:23:59
【问题描述】:

大家好,我在看 R 中的一些山脊线图,更具体地说是在“ggridges 简介”一文中,我的目标是制作这个图但没有重叠:

library(ggplot2)
library(ggridges)
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_fill_viridis_c(name = "Tail probability", direction = -1)

通过阅读同一篇文章,可以添加重叠:

+ geom_density_ridges(scale = 0.9)

但由于某种原因,我得到了这个错误:

Error in 0.5 - ecdf : non-numeric argument to binary operator

谢谢

【问题讨论】:

  • 关注这篇文章:如果将分类变量映射到y轴,则不需要提供分组美学,但如果变量是数值,则需要提供。 (cran.r-project.org/web/packages/ggridges/vignettes/…)
  • 因此您需要将分类变量转换为数值。你可以看到这篇文章的例子。

标签: r ggplot2 ggridges iris-dataset ridgeline-plot


【解决方案1】:

为了得到想要的结果,去掉第二个geom_density_ridges(这会导致错误),只需将scale = 0.9添加到第一层:

library(ggplot2)
library(ggridges)
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 = 0.9) +
  scale_fill_viridis_c(name = "Tail probability", direction = -1)
#> Picking joint bandwidth of 0.181

【讨论】:

    猜你喜欢
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 2016-08-03
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    相关资源
    最近更新 更多