R语言facet_wrap分面图怎么自定义两个y轴的范围
要自定义两个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()函数创建一个基础图层,并在每个图层上绘制了两条线,分别表示y1和y2 * 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轴范围的分面图
原文地址: https://www.cveoy.top/t/topic/iRp6 著作权归作者所有。请勿转载和采集!