我有两个不同的x轴但y轴相同的图。每个x轴的顺序必须保持这种方式。我想通过在底部有一个x轴而在顶部有一个x轴将两个图形合并为一个。
plot1 <- ggplot(df1, aes(x = Target1, y = RT1)) + geom_point() + geom_line(aes(group = 1))
plot2 <- ggplot(df2, aes(x = Target2, y = RT2)) + geom_point() + geom_line(aes(group = 1))
如何获得我想要的情节?
答案 0 :(得分:2)
一种方法是使用sec_axis()。这里我创建了两个数据框。 y轴(RT1和RT2)的比例相同。 Target1和Target2有不同的规模。
str
为了演示效果,我使用df1的散点图和df2的线图。我还将Target2除以10,使x变量更接近,更容易比较。
df1 <- data.frame(Target1 = c(1,2,3), RT1 = c(1,2,3))
df2 <- data.frame(Target2 = c(20,30,40), RT2 = c(3,4,5))
或者,如果您不想重新安排x轴,可以使用dup_axis()代替。
ggplot() +
geom_point(data = df1, mapping = aes(Target1, RT1)) +
geom_line(data = df2, mapping = aes(Target2/10, RT2)) +
scale_x_continuous("Target 1", sec.axis = sec_axis(~.*10, name = "Target 2"))
希望它有所帮助。