R ggplot中跨组的连续线

R ggplot中跨组的连续线,r,plot,charts,ggplot2,linegraph,R,Plot,Charts,Ggplot2,Linegraph,我有一个时间序列的数据,其中一些数据是观察到的,一些数据是模拟的。我想生成整个数据系列随时间变化的曲线图,颜色表示数据源。但是,我只能找出如何使ggplot中的geom_line()连接同一组中的点 下面是一个需要澄清的示例: # Create sample data df <- data.frame(cbind(seq(1,9,1), c(1,2,3,4,5,4,3,2,1), c("obs","obs", "obs", "obs", "sim","sim","obs","sim", "

我有一个时间序列的数据,其中一些数据是观察到的,一些数据是模拟的。我想生成整个数据系列随时间变化的曲线图,颜色表示数据源。但是,我只能找出如何使ggplot中的geom_line()连接同一组中的点

下面是一个需要澄清的示例:

# Create sample data
df <- data.frame(cbind(seq(1,9,1), c(1,2,3,4,5,4,3,2,1), c("obs","obs", "obs", "obs", "sim","sim","obs","sim", "obs")))
colnames(df) <- c("time", "value", "source")

# Make a plot
p <- ggplot(df, aes(x=time, y=value, group=source, color=source))
p + geom_point()  # shows all the points in sequential order as dots
p + geom_point() + geom_line() # connects obs to obs and sim to sim
#创建示例数据

df
df如果您只想在
geom_路径
中使用一行,则无需为参考数据创建额外的列。您可以直接在
aes
参数中使用任何文本字符串强制单个组。例如:

df <- data.frame(time = 1:9, 
                 value = c(1:5, 4:1),
                 source = c("obs","obs","obs","obs","sim","sim","obs","sim","obs"))


ggplot(df,aes(x=time,y=value, colour=source)) + 
  geom_point() + 
  geom_path(aes(group="all"))
df
df <- data.frame(time = 1:9, 
                 value = c(1:5, 4:1),
                 source = c("obs","obs","obs","obs","sim","sim","obs","sim","obs"))


ggplot(df,aes(x=time,y=value, colour=source)) + 
  geom_point() + 
  geom_path(aes(group="all"))