要自定义两个y轴的范围,可以使用facet_wrap()函数的scales参数。scales参数接受一个字符串或一个列表,用于指定每个子图的比例尺设置。

以下是一个示例代码,演示如何自定义两个y轴的范围:

library(ggplot2)

# 创建一个包含两个y轴的数据框
df <- data.frame(x = 1:10, y1 = 1:10, y2 = 10:1)

# 创建一个分面图,每个子图都有两个y轴
ggplot(df, aes(x = x)) +
  geom_line(aes(y = y1, color = "y1")) +
  geom_line(aes(y = y2 * 10, color = "y2")) +
  facet_wrap(~ x, scales = "free_y", ncol = 1) +
  scale_y_continuous(
    name = "y1",
    sec.axis = sec_axis(~./10, name = "y2")
  )

在这个例子中,我们首先创建了一个包含两个y轴的数据框df,其中y1代表第一个y轴,y2代表第二个y轴。

然后,我们使用ggplot()函数创建一个基础图层,并在每个图层上绘制了两条线,分别表示y1y2 * 10

接下来,我们使用facet_wrap()函数创建一个分面图,其中每个子图都有自己的y轴范围。scales = "free_y"表示每个子图的y轴范围可以自由调整。

最后,我们使用scale_y_continuous()函数来设置第一个y轴的标签,并使用sec.axis参数来设置第二个y轴的标签和转换函数。在本例中,我们将第二个y轴的标签设置为"y2",并使用sec_axis(~./10, name = "y2")来将第二个y轴的刻度值除以10。

运行这段代码,你将会得到一个带有自定义两个y轴范围的分面图

R语言facet_wrap分面图怎么自定义两个y轴的范围

原文地址: https://www.cveoy.top/t/topic/iRp6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录