首页 > 解决方案 > 使用 ggplot 将两种不同类型的图组合到一个窗口中

问题描述

假设我有两个以这种方式定义的数据框:

df <- data.frame(x=rep(1:3, 3), val=sample(1:100, 9), 
                 variable='category')
df1 <- data.frame(x=rep(4:6, 3), val=sample(1:100, 9), 
                 variable='category')

而且我想将它们都绘制在一个图表上,这样对于从 1 到 3 的 x 它将是一条线,而对于从 4 到 6 的 x 它将是点。所以

plot_1<-ggplot(data=df,aes(x=x,y=val))+geom_line(aes(colour=variable))
plot_2<-ggplot(data=df1,aes(x=x,y=val))+geom_point(aes(colour=variable))
plot_grid(plot_1,plot_2,nrow = 1,ncol=1)

在输出中,我得到以下图表:

在此处输入图像描述

因此,我只有第一张图(从 1 到 3 的线),而不是从 1 到 3 的线和从 4 到 6 的点。

有没有一些简单的方法可以解决这个问题?

标签: rggplot2

解决方案


如果您想在同一张图表上绘制数据,您可以尝试:

library(ggplot2)

ggplot() + aes(x, val) + 
   geom_line(data = df) + geom_point(data = df1)

在此处输入图像描述


推荐阅读