- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经将一些数据分为足够的分组,以至于标准箱形图看起来非常拥挤。 Tufte有自己的箱型图,您可以在其中基本上放掉全部或一半的框,如下所示:
一些样本数据:
cw <- transform(ChickWeight,
Time = cut(ChickWeight$Time,4)
)
cw$Chick <- as.factor( sample(LETTERS[seq(3)], nrow(cw), replace=TRUE) )
levels(cw$Diet) <- c("Low Fat","Hi Fat","Low Prot.","Hi Prot.")
最佳答案
您显然只需要一个垂直版本,因此我获取了panel.bwplot代码,去除了所有不必要的内容,例如盒子和盖子,并在参数中设置了horizontal = FALSE并创建了panel.tuftebxp函数。还要将点的Cex设置为默认值的一半。仍然有很多选项可以根据您的口味进行调整。 “时间”的“数字”因子名称看起来很草率,但是我认为“概念验证”很明确,您可以清理对您来说很重要的内容:
panel.tuftebxp <-
function (x, y, box.ratio = 1, box.width = box.ratio/(1 + box.ratio), horizontal=FALSE,
pch = box.dot$pch, col = box.dot$col,
alpha = box.dot$alpha, cex = box.dot$cex, font = box.dot$font,
fontfamily = box.dot$fontfamily, fontface = box.dot$fontface,
fill = box.rectangle$fill, varwidth = FALSE, notch = FALSE,
notch.frac = 0.5, ..., levels.fos = if (horizontal) sort(unique(y)) else sort(unique(x)),
stats = boxplot.stats, coef = 1.5, do.out = TRUE, identifier = "bwplot")
{
if (all(is.na(x) | is.na(y)))
return()
x <- as.numeric(x)
y <- as.numeric(y)
box.dot <- trellis.par.get("box.dot")
box.rectangle <- trellis.par.get("box.rectangle")
box.umbrella <- trellis.par.get("box.umbrella")
plot.symbol <- trellis.par.get("plot.symbol")
fontsize.points <- trellis.par.get("fontsize")$points
cur.limits <- current.panel.limits()
xscale <- cur.limits$xlim
yscale <- cur.limits$ylim
if (!notch)
notch.frac <- 0
#removed horizontal code
blist <- tapply(y, factor(x, levels = levels.fos), stats,
coef = coef, do.out = do.out)
blist.stats <- t(sapply(blist, "[[", "stats"))
blist.out <- lapply(blist, "[[", "out")
blist.height <- box.width
if (varwidth) {
maxn <- max(table(x))
blist.n <- sapply(blist, "[[", "n")
blist.height <- sqrt(blist.n/maxn) * blist.height
}
blist.conf <- if (notch)
sapply(blist, "[[", "conf")
else t(blist.stats[, c(2, 4), drop = FALSE])
ybnd <- cbind(blist.stats[, 3], blist.conf[2, ], blist.stats[,
4], blist.stats[, 4], blist.conf[2, ], blist.stats[,
3], blist.conf[1, ], blist.stats[, 2], blist.stats[,
2], blist.conf[1, ], blist.stats[, 3])
xleft <- levels.fos - blist.height/2
xright <- levels.fos + blist.height/2
xbnd <- cbind(xleft + notch.frac * blist.height/2, xleft,
xleft, xright, xright, xright - notch.frac * blist.height/2,
xright, xright, xleft, xleft, xleft + notch.frac *
blist.height/2)
xs <- cbind(xbnd, NA_real_)
ys <- cbind(ybnd, NA_real_)
panel.segments(rep(levels.fos, 2), c(blist.stats[, 2],
blist.stats[, 4]), rep(levels.fos, 2), c(blist.stats[,
1], blist.stats[, 5]), col = box.umbrella$col, alpha = box.umbrella$alpha,
lwd = box.umbrella$lwd, lty = box.umbrella$lty, identifier = paste(identifier,
"whisker", sep = "."))
if (all(pch == "|")) {
mult <- if (notch)
1 - notch.frac
else 1
panel.segments(levels.fos - mult * blist.height/2,
blist.stats[, 3], levels.fos + mult * blist.height/2,
blist.stats[, 3], lwd = box.rectangle$lwd, lty = box.rectangle$lty,
col = box.rectangle$col, alpha = alpha, identifier = paste(identifier,
"dot", sep = "."))
}
else {
panel.points(x = levels.fos, y = blist.stats[, 3],
pch = pch, col = col, alpha = alpha, cex = cex,
identifier = paste(identifier,
"dot", sep = "."))
}
panel.points(x = rep(levels.fos, sapply(blist.out, length)),
y = unlist(blist.out), pch = plot.symbol$pch, col = plot.symbol$col,
alpha = plot.symbol$alpha, cex = plot.symbol$cex*0.5,
identifier = paste(identifier, "outlier", sep = "."))
}
bwplot(weight ~ Diet + Time + Chick, data=cw, panel=
function(x,y, ...) panel.tuftebxp(x=x,y=y,...))
关于r - R?中可用于Tufte箱图的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6973394/
多年来,我在 ggplot2 中使用 Tufte 线,但我一直想知道是否有自动绘制它们的方法,因此它们对应于轴抽动。 我画它们的通常方式是这样的: ggplot(mtcars, aes(x=mpg,
我正在使用 bookdown::tufte_html2() 创建一个单文档 bookdown 文档,虽然我喜欢 Tufte 的所有功能,但我希望我的引用不 使页边距困惑。 tufte 包文档似乎建议[
我很想进行“投影仪演示”Tufte-style在 Rmarkdown 中。我可以在那里放入 YAML header output: beamer_presentation或者 output: tu
假设我有一个很长的文本(字体大小是可调的,所以事先将它分成几部分并不是一个真正的选择),其中包含引用([1]、[2]、...)和相应的注释。 Lorem ipsum dolor sit amet
我对 tufte Markdown 样式有疑问... 我的一些代码块的格式不正确。无法识别换行符并且文本 float (这是正确的词吗?)到评论和图像所在的侧面区域。 例子: --- title: "
我在 RMarkdown/Rstduio 中使用 tufte::tufte_handout 类。有没有办法像全宽图像/绘图一样获得全角表格? 编辑:为了清楚起见,我知道如何使用相关的块选项使数字全宽。
我必须承认,今天是我使用 Sweave 或 LaTeX 的第一天。对,是真的。我今天意识到,如果没有我的参与,我的“40 岁之前”遗愿 list 不会自行解决。和我这一代的许多人一样,学习 Sweav
这个问题在这里已经有了答案: knitr: Use an inline expression in fig.cap chunk option (1 个回答) 关闭 7 年前。 我正在使用新的 Tuf
我正在使用 将 tufte-LaTeX 书籍转换为 tufte-Bookdown簇绒和 msmbstyle包。我有一大堆旁注,希望每章都重新开始编号,这样在本书结束时我不会达到 400。 我找到了 t
在 _output.yml 中,以下内容实际上正确设置了纸张尺寸: bookdown::pdf_book: pandoc_args: [ "-V", "papersize=a4"
我是一名优秀的程序员,十分优秀!