R ggplot2具有数据层的镶嵌面
我面临以下问题。我已经设置了以下两个数据帧R ggplot2具有数据层的镶嵌面,r,ggplot2,R,Ggplot2,我面临以下问题。我已经设置了以下两个数据帧 x = c(1,2,3,4,1,2,3,4) f = c(rep('a',4),rep('b',4)) y = c(2,4,5,6,9,4,2,10) z = data.frame(x=x,f=f,y=y) 另一个数据帧是 x1 = c(2,2.5,3.1,2.8,3.4,3.5) y1 = c(1,1.2,1,2,3,2) f1 = c(rep('a',3),rep('b',3)) z1 = data.frame(x=x1,f=f1,y=y1)
x = c(1,2,3,4,1,2,3,4)
f = c(rep('a',4),rep('b',4))
y = c(2,4,5,6,9,4,2,10)
z = data.frame(x=x,f=f,y=y)
另一个数据帧是
x1 = c(2,2.5,3.1,2.8,3.4,3.5)
y1 = c(1,1.2,1,2,3,2)
f1 = c(rep('a',3),rep('b',3))
z1 = data.frame(x=x1,f=f1,y=y1)
我想能够做的是根据f列使用刻面绘制第一个数据帧z。这很容易做到。但是,我的第二个数据框表示我想在每个图上绘制的两个三角形的坐标。如何使用层来完成此操作?我尝试了以下方法,但没有效果
p = ggplot() +
layer(
data=z,
mapping = aes(x,y),
geom="line"
) +
layer(
data = z1,
mapping = aes(x,y),
geom="polygon",
color="blue"
) +
facet_grid(f ~ .)
非常感谢您的关注和帮助。重要的是,您的facet在每个数据源中应具有相同的列名: 设置数据。(我使用与您相同的数据,但请注意,您不需要预定义向量,只需在
data.frame
函数中进行即可。这可以减少工作区中的混乱:
library(ggplot2)
z <- data.frame(
x = c(1,2,3,4,1,2,3,4),
y = c(2,4,5,6,9,4,2,10),
f = c(rep('a',4),rep('b',4))
)
z1 <- data.frame(
x = c(2,2.5,3.1,2.8,3.4,3.5),
y = c(1,1.2,1,2,3,2),
f = c(rep('a',3),rep('b',3))
)
明白了。这太完美了。谢谢much@lajkssfjd如果您觉得这个答案回答了您的问题,请随意将其作为正确答案进行检查(小灰色复选框,在分数下方变为绿色)。
ggplot() +
geom_line(data=z, aes(x,y)) +
geom_polygon(data=z1, aes(x,y), color="blue") +
facet_grid(f ~ .)