【问题标题】:Reverse order of breaks in ggplot, ggridgesggplot,ggridges中的中断顺序相反
【发布时间】:2018-09-27 17:58:23
【问题描述】:

我有一个包含长度(整数)和年份(因子)的数据集,我想使用 ggridges 绘制它。这是一个包含整数和因子数据的类似数据集。如何更改 y 轴上 Species 的顺序(即因子)?

library(ggplot2)
library(ggridges)
library(viridis)
library(datasets)

order <- c("setosa", "versicolor", "virginica")

ggplot(iris, aes(x = Sepal.Length, y = Species, fill = ..x..), order(Species)) + 
  geom_density_ridges_gradient(scale = 3, rel_min_height = 0.01) +
  scale_fill_viridis(name = "Sepal.Length", option = "A") +
  theme_ridges() +
  labs(title = 'Sepal Length distributions for irises')

这里,order(Species)order(order) 不起作用。

我试过了:

scale_y_reverse(breaks=order), expand = c(0.01, 0))

但后来意识到这是针对连续变量(尝试将年份作为数字 - 不起作用)。

【问题讨论】:

    标签: r ggplot2 ridgeline-plot ggridges


    【解决方案1】:

    这是你想要的吗?我在您的代码中添加了mutate(Species = factor(Species, levels = rev(myorder)))

    library(dplyr)
    library(ggplot2)
    library(ggridges)
    library(viridis)
    library(datasets)
    
    myorder <- c("setosa", "versicolor", "virginica")
    iris <- iris %>% 
      mutate(Species = factor(Species, levels = rev(myorder)))
    
    ggplot(iris, aes(x = Sepal.Length, y = Species, fill = ..x..), Species) + 
      geom_density_ridges_gradient(scale = 3, rel_min_height = 0.01) +
      scale_fill_viridis(name = "Sepal.Length", option = "A") +
      theme_ridges() +
      labs(title = 'Sepal Length distributions for irises')
    #> Picking joint bandwidth of 0.181
    

    编辑:另一种更简单的方法是使用forcats 包中的fct_rev()

    library(forcats)
    library(ggplot2)
    library(ggridges)
    
    ggplot(iris, aes(x = Sepal.Length, y = fct_rev(Species), fill = ..x..), Species) + 
      geom_density_ridges_gradient(scale = 3, rel_min_height = 0.01) +
      scale_fill_viridis_c(name = "Sepal.Length", option = "A") +
      theme_ridges() +
      labs(title = 'Sepal Length distributions for irises')
    #> Picking joint bandwidth of 0.181
    

    reprex package (v0.2.1.9000) 于 2018 年 9 月 27 日创建

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-21
      • 1970-01-01
      • 2020-10-16
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 2018-11-25
      • 1970-01-01
      相关资源
      最近更新 更多