r - ggplot2 Tufte 线与轴刻度相同

标签 r ggplot2 tufte

多年来,我在 ggplot2 中使用 Tufte 线,但我一直想知道是否有自动绘制它们的方法,因此它们对应于轴抽动。

我画它们的通常方式是这样的:

ggplot(mtcars, aes(x=mpg, y=cyl))+
geom_bar(stat = "identity")+
theme_tufte()+
geom_hline(yintercept = c(5,10,15), col="white", lwd=3)

Tufte lines

在这里,我使用 yintercept = c(5,10,15) 指定刻度,但最近我正在构建一个具有变化轴的 Shiny 应用程序,因此我无法指定固定刻度。

有没有办法让我说像 yintercept = tickmarks 这样的东西,这样我的 Shiny 应用程序就可以一直工作,而无需预先计算和手动定义轴和 Tufte 线?

最佳答案

您可以使用 ggplot_build将刻度线位置提取为向量,然后将其传递给 yintercept geom_hline 的论据:

p <- ggplot(mtcars, aes(x=mpg, y=cyl))+
    geom_bar(stat = "identity")+
    theme_tufte()

tickmarks <- ggplot_build(p)$layout$panel_ranges[[1]]$y.major_source  

p + geom_hline(yintercept = tickmarks, col="white", lwd=3)

关于r - ggplot2 Tufte 线与轴刻度相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43833762/

相关文章:

r - 使用 ggsave 和 Rscript 时如何阻止 R 创建空的 Rplots.pdf 文件

r - (已关闭)R Shiny应用程序中的覆盖小部件

r - 防止 ggplot2 自动排序 x 轴

r - 在 knitr block 内设置 Tufte 图标题

r - 如何将外部数据文件添加到开发 R 包中?

r - 根据唯一/不同值的数量选择组

r - 具有多列的计数数据的条形图

r - 将交叉验证折叠分配给 for 循环中的数据集

r - 使用 R/bookdown 渲染 tufte_html_book() 时出错

python - 一种绘制凹凸图的 Pythonic 方法