小编Baj*_*jcz的帖子

对于geom_violin,如何指定所有小提琴的总面积?

在对的调用geom_violinggplot2,您可以通过指定来指定每个小提琴的面积与组成该小提琴的观察次数成正比scale="count"

我假设这是在内部进行操作的,方法是取一些总面积(我们称此数量X),并将其按比例分配给所有要绘制的小提琴。这就是我想要的,除了如果组之间的N差异足够大,从而导致某些组的N相对较低,这会导致小提琴非常狭窄。在我的情况下,这只会使填充色很难看清。

我认为,至少在我的情况下,可以简单地将X稍微扩展一点,从而使很小的小提琴具有足够的可读性,从而在很大程度上解决该问题。换句话说,我想根据观察次数保留小提琴之间的面积差异,但要增加小提琴之间分配的总面积的“池”,以使每个小提琴变得更大。

任何人都不知道如何实现这一目标?必须为此进行切换。我试着用大惊小怪参数geom_violin,如widthsizeviolinwidth,等,但至今没有运气...

编辑:编码一个无聊但可重现的“样本”数据集,供人们进行试验。

y = runif(100, 1, 10)
x = as.factor(rep(c(1,2), times=50))
z = as.factor(c(rep(1, 10), rep(2, 90)))
df=data.frame(x, y, z)
ggplot(df, aes(x=x, y=y, fill=z)) + geom_violin(scale="count")
Run Code Online (Sandbox Code Playgroud)

r ggplot2 violin-plot

5
推荐指数
1
解决办法
1425
查看次数

在 R 中,如何从“nls”模型对象中提取帽子/投影/影响矩阵或值?

对于lmglm类型对象,甚至lmer类型对象,您可以使用 R 函数从模型中提取帽子值hatvalues()。然而,显然这不适用于nls对象。我用谷歌搜索了各种方法,但找不到获取这些值的方法。是否nls根本不创建帽子矩阵,或者非线性最小二乘模型产生的帽子值是否不可靠?

可重现的例子:

xs = rep(1:10, times = 10)
ys = 3 + 2*exp(-0.5*xs)
for (i in 1:100) {
xs[i] = rnorm(1, xs[i], 2)
}
df1 = data.frame(xs, ys)
nls1 = nls(ys ~ a + b*exp(d*xs), data=df1, start=c(a=3, b=2, d=-0.5))
Run Code Online (Sandbox Code Playgroud)

r nls non-linear-regression

2
推荐指数
1
解决办法
3087
查看次数

标签 统计

r ×2

ggplot2 ×1

nls ×1

non-linear-regression ×1

violin-plot ×1