【问题标题】:Reverse x-axis factor levels of mcmc areas after coord_flipcoord_flip 后 mcmc 区域的反转 x 轴因子水平
【发布时间】:2022-01-28 03:48:25
【问题描述】:

我有一个从贝叶斯后验分布中抽取三个不同变量的数据框,我想将它们绘制为mcmc_areas

当我这样做时,变量名称在 y 轴上,而绘制值在 y 轴上。当我使用coord_flip 将变量名切换到x 轴时,它们是相反的。

我见过的其他解决方案涉及修改原始数据集或 ggplot 中的 aes 以包含我的数据没有的因子水平。

如何反转 x 轴上变量名的顺序,以便它们从左到右读取 var1、var2、var3?

library(bayesplot)
library(ggplot2)

var1 <- c(-0.06002548, -0.02066638, -0.04869878, -0.03085879, -0.04363278, -0.04427182)
var2 <- c(-0.011345631, -0.033393275, -0.037143247, -0.012890959, -0.031249614, -0.001547747)
var3 <- c(-0.05907443, -0.06544918, -0.05831428, -0.04964141, -0.05206038, -0.05726436)

df <- data.frame(var1, var2, var3)

plot <- mcmc_areas(test, pars = c("var1","var2","var3"),
                   point_est = "mean",
                   prob = .95)
ggtest <- plot + coord_flip()

【问题讨论】:

    标签: r ggplot2 mcmc


    【解决方案1】:

    一种选择是反转您将变量传递给mcmc_areas 的顺序,以便在翻转后获得所需的顺序:

    library(bayesplot)
    library(ggplot2)
    
    mcmc_areas(df, pars = rev(c("var1","var2","var3")),
               point_est = "mean",
               prob = .95) +
      coord_flip()
    

    第二个选项是通过scale_y_discretelimits 参数设置所需的顺序。笔记。这样做会稍微改变情节的外观。为了解决这个问题,我将expand 参数设置为等于从plot$scales$scales[[1]]$expand 提取的mcmc_areas 设置的值。

    mcmc_areas(df, pars = c("var1","var2","var3"),
               point_est = "mean",
               prob = .95) +
      coord_flip() +
      scale_y_discrete(limits = c("var1","var2","var3"), expand = c(0.1, 0, 0.1, 0.666666666666667))
    #> Scale for 'y' is already present. Adding another scale for 'y', which will
    #> replace the existing scale.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-17
      • 2017-11-15
      • 2015-01-27
      相关资源
      最近更新 更多