【发布时间】:2020-03-10 06:19:39
【问题描述】:
我使用pairs(fit, pars = c("mu", "sigma", "lambda"), include = TRUE) 在我的 stan 模型的每对变量之间创建直方图和散点图。现在散点图中的点非常大,像这样:
我想让点更小更清晰,如果可能的话,我还想改变情节的颜色。有没有可以帮助我做到这一点的 R 函数?谢谢!
【问题讨论】:
标签: r histogram scatter-plot stan
我使用pairs(fit, pars = c("mu", "sigma", "lambda"), include = TRUE) 在我的 stan 模型的每对变量之间创建直方图和散点图。现在散点图中的点非常大,像这样:
我想让点更小更清晰,如果可能的话,我还想改变情节的颜色。有没有可以帮助我做到这一点的 R 函数?谢谢!
【问题讨论】:
标签: r histogram scatter-plot stan
如果你只是想绘制点,可以通过指定自定义函数来完成:
library(rstan)
example(read_stan_csv)
pairs(fit, pars = c("mu", "sigma", "alpha"), log = TRUE,
panel=function(x,y)points(x,y,col="blue",pch=20,cex=0.6))
在panel参数下,我们指定了一个颜色为“蓝色”的点函数,cex是调整点大小的参数。
默认绘图是平滑散点图,而不是单个点,它显示数据点的密度。要更改它,您必须调用 smoothScatter 作为面板函数,并且颜色作为调色板提供。例如:
library(RColorBrewer)
PAL = colorRampPalette(c("white",brewer.pal(6,"Greens")))
pairs(fit, pars = c("mu", "sigma", "alpha"), log = TRUE,
panel=function(x,y){smoothScatter(x,y,add=T,colramp = PAL,cex=2)})
如前所述,它不是散点图,因此您可以看到 cex 几乎没有效果。阅读source code,请注意在某些情况下,上面的这个函数可能会在绘制的点数上有所不同。所以你应该只指定你用上面的函数绘制的内容,而不是假设它等同于 pair.stanfit () 函数。
【讨论】: