下面的示例代码说明了如何使用ggplot2和dplyr包来调整y轴范围,并添加额外的y轴标签,以使faceted ggplot中的geom_line更容易看到。
首先,我们用mtcars数据集绘制一个faceted ggplot:
library(ggplot2)
library(dplyr)
p <- ggplot(mtcars, aes(x = wt, y = mpg)) +
facet_wrap(~ cyl) +
geom_line()
p
由于数据集的mpg范围非常小,因此我们可能需要自己设置y轴范围。例如,我们可以使用dplyr来找到每个cyl子集中mpg值的最大值和最小值,并在该范围内缩放y轴:
range_df <- mtcars %>%
group_by(cyl) %>%
summarize(mpg_min = min(mpg), mpg_max = max(mpg))
p +
scale_y_continuous(limits = c(0, NA),
expand = c(0, 0),
sec.axis = sec_axis(~ . * (range_df$mpg_max - range_df$mpg_min) + range_df$mpg_min,
name = "mpg"),
guide = guide_axis(override.aes = list(color = NA)))
在这里,我们创建了一个名为range_df的数据框,其中包含每个cyl子集的mpg最大值和最小值。然后,我们使用这些值来在y轴上调整缩放,并添加一个额外的y轴标签,该标签根据每个子集中mpg的最小值和最大值定位。
最后,我们使用expand = c(0, 0)来确保总是显示所有geom_line,而guide = guide_axis(override.aes = list(color = NA))用于删除默认的y轴标签。
这将为您提供一个更容易查