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)

我想做的是使用基于列 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 ~ .)

非常感谢您的关注和帮助。

最佳答案

重要的是你的构面应该在每个数据源中具有相同的列名:

设置数据。 (我使用与您相同的数据,但请注意,您不需要预定义向量 - 只需在 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))
)

ggplot 的调用实际上与您的原始代码相同。我只是通过不使用 layer 而是直接使用 geoms 节省了一些击键:

ggplot() +
    geom_line(data=z, aes(x,y)) +
    geom_polygon(data=z1, aes(x,y), color="blue") +
    facet_grid(f ~ .)

enter image description here

关于r - 具有数据层的ggplot2刻面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9343350/

相关文章:

r - 如何显示比例 (0-1) 条形图以及具有不同轴的线数据?

r - 在 ggplot 的图例中添加背景透明度和自定义排序

r - 根据顶点强度分配边缘方向

r - 如何在 ggplot 中制作此线型?

r - R中的计数函数

r - 从现有的ggplot图表中删除geom?

r - 将科学计数法 +e 转换为 geom_text 中带上标的 10^(y)

R/Excel : leading zeroes

r - 如何使用 ggplot2 按月、季度或年分组

R hist 与 geom_hist 断点