此问题与 创建自定义geom以计算汇总统计信息并在*绘图区域外显示* (注意:所有函数都已简化;没有错误检查正确的对象类型,NA等)
在基础R中,很容易创建一个生成条带图的函数,其中样本大小在分组变量的每个级别下面指示:您可以使用以下mtext()函数添加样本大小信息:
stripchart_w_n_ver1 <- function(data, x.var, y.var) {
x <- factor(data[, x.var])
y <- data[, y.var]
# Need to call plot.default() instead of plot because
# plot() produces boxplots when x is a factor.
plot.default(x, y, xaxt = "n", xlab = x.var, ylab = y.var)
levels.x <- levels(x)
x.ticks <- 1:length(levels(x))
axis(1, at = x.ticks, labels = levels.x)
n <- sapply(split(y, x), length)
mtext(paste0("N=", n), side = 1, line = 2, at = x.ticks)
}
stripchart_w_n_ver1(mtcars, …Run Code Online (Sandbox Code Playgroud) 我是R包EnvStats的创建者.
有一个我经常使用的函数叫做stripChart.我刚刚开始学习ggplot2,过去几天一直在研究哈德利的书,温斯顿的书,StackOverflow和其他资源,试图创造一个geom近似于它的东西stripChart.我无法弄清楚如何geom计算汇总统计数据和测试结果,然后将它们放在x轴刻度线下方以及绘图顶部(绘图区域外).以下是使用内置数据集的简单示例mtcars:
library(EnvStats)
stripChart(mpg ~ cyl, data = mtcars, col = 1:3,
xlab = "Number of Cylinders", ylab = "Miles per Gallon", p.value = TRUE)
Run Code Online (Sandbox Code Playgroud)
以下是尝试重现stripChart的大部分功能的geom的早期草稿:
geom_stripchart <-
function(..., x.nudge = 0.3,
jitter.params = list(width = 0.3, height = 0),
mean.params = list(size = 2, position = position_nudge(x = x.nudge)),
errorbar.params = list(size = 1, width = 0.1,
position = position_nudge(x = x.nudge)),
n.text = TRUE, …Run Code Online (Sandbox Code Playgroud)