使用包geom_density_ridges中的函数时ggridges,它始终为图中的所有密度选择带宽。但是有没有办法调整它选择的带宽呢?
我目前有一些代码可以制作山脊图,但对于底部密度来说带宽太低。我想对其进行调整,使其更平滑、不那么粗糙。
这是我的代码:
hier_plot <- ggplot(hier_df, aes(x=x, y=as.factor(beta), fill = factor(beta))) +
theme(axis.title = element_text(size = 15),
axis.text = element_text(size = 15),
legend.text = element_text(size = 10),
panel.background = element_rect(fill = "#fffffC")) +
labs(y = expression(beta), x = 'x', expression(beta), fill = expression(beta)) +
geom_density_ridges(scale = 2.5) +
scale_x_continuous(expand = c(0.01, 0)) +
scale_y_discrete(expand = c(0.05, 0)) +
scale_fill_brewer(palette = 'Reds')
hier_plot
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个函数,该函数可以将函数作为 Rcpp 中的参数。我在 R 中编写了一个示例函数,它显示了我想要的功能类型:
simulate_and_evaluate <- function(simulate, evaluate) {
y <- simulate(1)
eval <- evaluate(y)
return(eval)
}
simulate_fun <- function(n) rnorm(n, 0, 1)
evaluate_fun <- function(x) dnorm(x, 0, 1)
simulate_and_evaluate(simulate = simulate_fun,
evaluate = evaluate_fun)
Run Code Online (Sandbox Code Playgroud)
在这个函数中simulate_and_evaluate,它接受两个都是函数的参数,一个模拟一个数字,一个用这个模拟数字计算一个函数。例如,我们可以从标准法线模拟一个值,并评估该点标准法线的密度。有谁知道在 Rcpp 中是否有办法做到这一点?