ggplot2 图表双 Y 轴:如何让第二条曲线与标准化刻度对应
在使用 ggplot2 绘图时,使用 sec.axis 和 sec_axis 函数可以在同一图中添加第二个 y 轴。如果要让第二条曲线与标准化刻度的对应,可以按照以下步骤进行操作:
- 首先,将第一条曲线绘制在图上,并使用
scale_y_continuous函数对 y 轴进行标准化,例如使用rescale函数将 y 轴的范围缩放到 [0, 1] 之间。假设第一条曲线的数据为df1,代码如下:
library(ggplot2)
library(scales)
ggplot(data = df1, aes(x = x, y = y1)) +
geom_line() +
scale_y_continuous(labels = percent, limits = c(0, 1))
- 接下来,将第二条曲线绘制在图上,并使用
sec.axis和sec_axis函数添加第二个 y 轴。假设第二条曲线的数据为df2,代码如下:
ggplot(data = df2, aes(x = x, y = y2)) +
geom_line() +
scale_y_continuous(sec.axis = sec_axis(~ ., labels = percent, limits = c(0, 1)))
在这里,sec.axis 参数指定了使用第二个 y 轴,sec_axis 函数中的 ~ . 表示将第二个 y 轴的范围与第一个 y 轴相同。
这样绘制出的图中,第一条曲线的 y 轴范围为 [0, 1],第二条曲线的 y 轴范围也为 [0, 1],并且第二个 y 轴的刻度标签将会与第一条曲线的标准化刻度对应。
原文地址: https://www.cveoy.top/t/topic/fqoH 著作权归作者所有。请勿转载和采集!