如何编写一个函数来创建与 ggplot2 一起使用的自定义误差线?

发布于 2024-11-24 07:21:54 字数 341 浏览 0 评论 0原文

Ggplot2 允许在绘图中添加误差线。为了计算误差线限制,它包装了 Hmisc 中的函数。例如,要引导,可以使用mean_cl_boot选项:

m <- ggplot(mtcars, aes(x=cyl, y=am)) + stat_summary(fun.y=mean,geom="point")
m2 <- m + stat_summary(fun.data = "mean_cl_boot", geom = "errorbar", conf.int=.95)
m2

但是如果您需要编写自定义函数来计算误差线限制怎么办?应如何编写该函数才能从 stat_summary 调用中调用?

Ggplot2 allows one to add error bars to a plot. To calculate the error bar limits for you, it wraps functions from Hmisc. For example, to bootstrap one can use the mean_cl_boot option:

m <- ggplot(mtcars, aes(x=cyl, y=am)) + stat_summary(fun.y=mean,geom="point")
m2 <- m + stat_summary(fun.data = "mean_cl_boot", geom = "errorbar", conf.int=.95)
m2

But what if you need to write a custom function to calculate the error bar limits? How should the function be written to be invoked from a stat_summary call?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

负佳期 2024-12-01 07:21:55

以下是使用 PropCIs 中的 add4ci 函数提供置信区间的示例。您只需让函数返回名为“y”、“ymin”和“ymax”的数字列表:

library(PropCIs)
add4ciForGgplot <- function(x,conf.int) {
  numCorrect <- sum(x)
  numTrials <- length(x)
  CI <- add4ci(numCorrect,numTrials,conf.int)
  triplet <- data.frame(numCorrect/numTrials, CI$conf.int[1], CI$conf.int[2])
  names(triplet) <- c("y","ymin","ymax") #this is what ggplot is expecting
  return (triplet)
}

m <- ggplot(mtcars, aes(x=cyl, y=am)) + stat_summary(fun.y=mean,geom="point")
mCustom <- m + stat_summary(fun.data = "add4ciForGgplot", geom = "errorbar", conf.int=.95)
mCustom

Here's an example using the add4ci function from PropCIs providing a confidence interval. You just need to have the function return a list of numbers named "y", "ymin", and "ymax":

library(PropCIs)
add4ciForGgplot <- function(x,conf.int) {
  numCorrect <- sum(x)
  numTrials <- length(x)
  CI <- add4ci(numCorrect,numTrials,conf.int)
  triplet <- data.frame(numCorrect/numTrials, CI$conf.int[1], CI$conf.int[2])
  names(triplet) <- c("y","ymin","ymax") #this is what ggplot is expecting
  return (triplet)
}

m <- ggplot(mtcars, aes(x=cyl, y=am)) + stat_summary(fun.y=mean,geom="point")
mCustom <- m + stat_summary(fun.data = "add4ciForGgplot", geom = "errorbar", conf.int=.95)
mCustom
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文