多年来,我在 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)

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

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

最佳答案

您可以使用 ggplot_build 将刻度位置提取为向量,然后将其传递给 yinterceptgeom_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/

10-12 23:31