如何在ggplot中为每个方面添加图例?

Raj*_*aha 7 r ggplot2

我有以下 data.frame。我想绘制一个具有三个图例表的 ggplot,大小的通用图例,以及 var = "A" 和 var = "B" 的两个单独图例,从“值”列中获取值,这两个图例应放在旁边每个相关图。到目前为止,我已经尝试过为“var”列创建单个图例。

df <- data.frame(var = c("A","A","B","B"),
                 value = c("u","v","x","y"),
                 point = 1:4,
                 size = 1:4)

ggplot() +geom_point(data = df, 
                     aes(x = point,y = NA,
                         color = value,size = size)) +  
    facet_grid(rows = vars(var))
Run Code Online (Sandbox Code Playgroud)

谢谢。

编辑: 我附上了@Tung 建议的预期输出 在此处输入图片说明

s_t*_*s_t 5

这样的事情怎么样:

library(gridExtra)
library(ggplot2)
# split data for each "facet"
df <- split(df,f = df$var)

# plot for the first "facet"
p1 <- ggplot(df$A,aes(x = point,y = NA,colour = value, size = size)) + 
  geom_point() + 
  facet_wrap(~var, ncol=1) +
  # here you set the axis
  scale_x_continuous(limits = c(0.5, 4.5))

# do it for each "facet"
p2 <- p1 %+% df$B

# here the plot
grid.arrange(p1,p2)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明