R 是否可以在ggplot中创建3个系列(2条线和1个点)分面打印?

R 是否可以在ggplot中创建3个系列(2条线和1个点)分面打印?,r,ggplot2,R,Ggplot2,我试图写一个代码,我写的基本图形包在R到ggplot 我使用基本图形软件包获得的图形如下: library(ggplot2) tempcal <- read.csv("temp data ggplot.csv",header=T, sep=",") tempobs <- read.csv("temp data observed ggplot.csv",header=T, sep=",") p <- ggplot(tempcal,aes(x=time,y=data))+geom

我试图写一个代码,我写的基本图形包在R到ggplot

我使用基本图形软件包获得的图形如下:

library(ggplot2)
tempcal <-  read.csv("temp data ggplot.csv",header=T, sep=",")
tempobs <- read.csv("temp data observed ggplot.csv",header=T, sep=",")
p <- ggplot(tempcal,aes(x=time,y=data))+geom_line(aes(x=time,y=data,color=group1))+geom_point(data=tempobs,aes(x=time,y=data,colour=group1))+facet_wrap(~id)
p
!![在此处输入图像描述][1]

我想知道是否可以在ggplot2中创建这种类型的图形。我认为我们可以通过使用面板来创建这种图形,但我想知道是否可以在这种绘图中使用刻面。我遇到的主要困难是,最大值和最小值具有相同的长度,而观察到的数据不是连续的数据,并且间隔非常不同


任何关于为这种类型的绘图安排数据的想法都会非常有用。非常感谢。

找到的解决方案: 多亏了阿伦和安德里

以防有人需要解决这类问题

我使用的代码如下:

library(ggplot2)
tempcal <-  read.csv("temp data ggplot.csv",header=T, sep=",")
tempobs <- read.csv("temp data observed ggplot.csv",header=T, sep=",")
p <- ggplot(tempcal,aes(x=time,y=data))+geom_line(aes(x=time,y=data,color=group1))+geom_point(data=tempobs,aes(x=time,y=data,colour=group1))+facet_wrap(~id)
p
库(ggplot2)

tempcal找到的解决方案: 多亏了阿伦和安德里

以防有人需要解决这类问题

我使用的代码如下:

library(ggplot2)
tempcal <-  read.csv("temp data ggplot.csv",header=T, sep=",")
tempobs <- read.csv("temp data observed ggplot.csv",header=T, sep=",")
p <- ggplot(tempcal,aes(x=time,y=data))+geom_line(aes(x=time,y=data,color=group1))+geom_point(data=tempobs,aes(x=time,y=data,colour=group1))+facet_wrap(~id)
p
库(ggplot2)
tempcalJdbaba

从您的评论中,您提到希望
geom_点
仅在图例中包含
。这是一个尚未实现的功能,将直接用于
ggplot2
(如果我是对的话)。但是,中的
@Aniko
给出了一个修复/解决方法。这有点棘手,但很聪明!而且效果很好。这是我试过的一个版本。希望这是你所期望的

# bind both your data.frames
df <- rbind(tempcal, tempobs)

p <- ggplot(data = df, aes(x = time, y = data, colour = group1, 
                 linetype = group1, shape = group1))
p <- p + geom_line() + geom_point()
p <- p + scale_shape_manual("", values=c(NA, NA, 19))
p <- p + scale_linetype_manual("", values=c(1,1,0))
p <- p + scale_colour_manual("", values=c("#F0E442", "#0072B2", "#D55E00"))
p <- p + facet_wrap(~ id, ncol = 1)
p
#绑定两个数据帧
dfJdbaba

从您的评论中,您提到希望
geom_点
仅在图例中包含
。这是一个尚未实现的功能,将直接用于
ggplot2
(如果我是对的话)。但是,中的
@Aniko
给出了一个修复/解决方法。这有点棘手,但很聪明!而且效果很好。这是我试过的一个版本。希望这是你所期望的

# bind both your data.frames
df <- rbind(tempcal, tempobs)

p <- ggplot(data = df, aes(x = time, y = data, colour = group1, 
                 linetype = group1, shape = group1))
p <- p + geom_line() + geom_point()
p <- p + scale_shape_manual("", values=c(NA, NA, 19))
p <- p + scale_linetype_manual("", values=c(1,1,0))
p <- p + scale_colour_manual("", values=c("#F0E442", "#0072B2", "#D55E00"))
p <- p + facet_wrap(~ id, ncol = 1)
p
#绑定两个数据帧

df这很容易在ggplot中生成,具有不同的层和面。发布一些样本数据和你制作ggplot的最佳尝试,肯定会有人帮你。谢谢Arun和Andrie。我找到了答案,并在最初的帖子中发布了解决方案。我有一个问题。在上图中,图例未正确显示。最大值和最小值不应该有点。是否可以从上图中的最大值和最小值中删除点?谢谢。@Jdbaba与其将答案添加到您的问题中,不如将其添加为答案,并接受答案。@Paul谢谢您的建议。解决方案更新为答案。这是简单的生产在ggplot与不同的层和面。发布一些样本数据和你制作ggplot的最佳尝试,肯定会有人帮你。谢谢Arun和Andrie。我找到了答案,并在最初的帖子中发布了解决方案。我有一个问题。在上图中,图例未正确显示。最大值和最小值不应该有点。是否可以从上图中的最大值和最小值中删除点?谢谢。@Jdbaba与其将答案添加到您的问题中,不如将其添加为答案,并接受答案。@Paul谢谢您的建议。解决方案更新为答案。谢谢Arun。这正是我想要的。非常感谢你的努力。最好的富豪,你是阿伦。这正是我想要的。非常感谢你的努力。最佳富豪,Jdbaba