在具有两个y轴的图表上,使用双重geom_smooth()
函数查看标准误差范围时,可以使用以下解决方法:
- 创建一个包含两个y轴的图表。
- 将数据分为两个数据集,每个数据集对应一个y轴。
- 使用
geom_smooth()
函数分别在两个数据集上进行平滑。
- 使用
scale_y_continuous()
函数来设置每个y轴的范围。
- 使用
ggplot2
包的sec_axis()
函数来创建第二个y轴。
- 使用
geom_ribbon()
函数在两个数据集之间创建区域,表示标准误差范围。
下面是一个示例代码:
library(ggplot2)
# 创建示例数据集
df <- data.frame(x = 1:10, y1 = rnorm(10), y2 = rnorm(10))
# 创建图表
p <- ggplot(df, aes(x = x))
# 添加第一个y轴的平滑曲线
p <- p + geom_smooth(aes(y = y1), method = "lm", se = TRUE)
# 添加第二个y轴的平滑曲线
p <- p + geom_smooth(aes(y = y2), method = "lm", se = TRUE) +
scale_y_continuous(sec.axis = sec_axis(~ ., name = "y2"))
# 添加标准误差范围
p <- p + geom_ribbon(aes(ymin = y1 - se.y1, ymax = y1 + se.y1), fill = "blue", alpha = 0.3) +
geom_ribbon(aes(ymin = y2 - se.y2, ymax = y2 + se.y2), fill = "red", alpha = 0.3)
# 设置第一个y轴的范围
p <- p + scale_y_continuous(limits = c(-2, 2))
# 设置第二个y轴的范围
p <- p + scale_y_continuous(sec.axis = sec_axis(~ ., name = "y2", limits = c(-3, 3)))
# 显示图表
print(p)
在这个示例中,我们创建了一个包含两个y轴的图表。然后,我们使用geom_smooth()
函数在每个数据集上进行平滑,通过se = TRUE
参数来显示标准误差范围。使用geom_ribbon()
函数在两个数据集之间创建区域,表示标准误差范围。使用scale_y_continuous()
函数来设置每个y轴的范围,并使用sec.axis()
函数来创建第二个y轴。最后,通过print()
函数显示图表。