【问题标题】:Changing the title of individual plots within a panel of traceplots in ggplot2/rstan to greek letters with subscript将 ggplot2/rstan 中的跟踪图面板中的单个图的标题更改为带下标的希腊字母
【发布时间】:2019-09-26 10:00:36
【问题描述】:

我通过 mcmc_trace 创建我的 stanfit 对象的跟踪图。 我想重命名跟踪图的标题。 我已经设法更改标题,但我不知道如何将绘图重命名为带有类似于表达式函数的下标的希腊字母。

array <- as.array(fit)
array[1,1,1:3]
dimnames(array)[[3]][1:3] <- c("alpha1", "alpha2", "alpha3")

trace <- mcmc_trace(array, pars = c("alpha1", "alpha2", "alpha3")

我想用表达式(gamma[0]) 替换 alpha1,但它不起作用。

【问题讨论】:

  • 尝试像这样包装你的标题:'$\\gamma_0$'
  • 那么 $\\gamma_0$ 就是标题。
  • 当您将 alpha1 替换为 expression(gamma[0]) 时,输出是什么?
  • 如果我使用以下代码:array

标签: r stan rstan


【解决方案1】:

好的,经过一番挖掘,似乎bayesplott::mcmc_trace 没有希腊字母的选项。

但是,非常相似的mcmcplots::traplot 包有一个选项greek = TRUE。 我做了一个随机的例子给你看:

library(mcmcplots)

nc <- 3; nr <- 1000
pnames <- c(paste('alpha[', 1:2, ']', sep = ''), paste('gamma[1]', sep = ''))
means <- rpois(10, 20)
fakemcmc <- coda::as.mcmc.list(
  lapply(1:3, function(i) coda::mcmc(matrix(rnorm(nc*nr, rep(means, each=nr)),
                                            nrow=nr, dimnames=list(NULL,pnames)))))
traplot(fakemcmc, greek = TRUE)

产生这个输出:

【讨论】:

  • 非常感谢您的帮助,非常感谢!我的问题是,我不知道如何在没有数组函数的情况下更改 dimnames。而且我不能将数组用于陷阱。
  • 如果 x 是一个 data.frame fx 你可以通过names(x) &lt;- c('name1', 'name2')来改变它的名字
  • 更改 stanfit 对象的名称并不容易。但是 traplot 函数有参数“main”。有了这个可以指定新的标题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-06
  • 2015-08-10
  • 1970-01-01
  • 2017-07-22
  • 2021-03-30
  • 2013-04-03
相关资源
最近更新 更多