aaa*_*aaa 2 plot overlay r axes ggplot2
假设我有两个 data.frames,如下所示:
df_1=data.frame(x=c(1:200), y=rnorm(200))
df_2=rpois(100000, 1)
df_2=data.frame(table(df_2))
df_2$df_2=as.numeric(levels(df_2$df_2))[df_2$df_2]
Run Code Online (Sandbox Code Playgroud)
当我单独绘制它们时,我得到:
library(ggplot2)
p1=ggplot() +
geom_line(data=df_1, aes(x=x,y=y))
print(p1)
Run Code Online (Sandbox Code Playgroud)
p2=ggplot() +
geom_line(data=df_2, aes(x=df_2,y=Freq))
print(p2)
Run Code Online (Sandbox Code Playgroud)
这两个图具有不同的 x 轴和 y 轴。
如何将两个图叠加到一个图上?
谢谢
这是另一种选择。我们可以使用函数sec.axis中的参数scale_*_continuous()通过转换将数据相互映射。
ggplot() +
geom_line(data=df_1, aes(x=x,y=y))+
geom_line(data=df_2, aes(x=df_2*25,y=Freq/9000))+
scale_x_continuous(sec.axis = sec_axis(trans = ~./25))+
scale_y_continuous(sec.axis = sec_axis(trans = ~.*9000))
Run Code Online (Sandbox Code Playgroud)

重新缩放是任意的,因此您可以随意使用它,直到您满意为止。