2012-10-05 76 views
2

我遇到了一个问题,即使我的图例的图例中的符号与图中的符号相匹配。ggplot2:更改图例中的符号

假设数据具有四列这样

data = data.frame(x = sample(1:10, 10, replace=TRUE), y = sample(1:10, 10, replace=TRUE), 
      Rank = sample(1:10, 10, replace = TRUE), Quantified = factor(sample(1:2, 10, replace = TRUE)) 
) 

我想点具有不同的尺寸(由“排名”相区别)和表示由不同的符号(十字架和空心圆,通过“量化”区分)。

我的代码是

ggplot(data, aes(x = x, y = y)) + 
      geom_point(aes(size = Rank, shape = Quantified)) + 
      scale_shape_manual("Quantified", labels = c("Yes", "No"), values = c(1, 4) 
) 

在情节的符号是因为我希望他们。

我的问题是,我希望顶部图例中的圆圈是未填充的,因为它们在图中。

我已经尝试了代码不同部分的各种命令(例如fill =“white”),但是没有任何东西看起来很正确。

有什么建议吗?

+0

你能弄清楚你想要什么?这听起来像是你想让Rank传奇中的圈子是开放的,未填充的圈子? – joran

+0

是的,没错。在情节中,这些圈子是开放的,但在排名图例中它们被填满。我试图澄清这个帖子。 – Tim

回答

8

现在,我敢肯定,这是你想要的:

library(scales) 
ggplot(data, aes(x = x, y = y)) + 
      geom_point(aes(size = Rank, shape = Quantified)) + 
      scale_shape_manual("Quantified", labels = c("Yes", "No"), values = c(1, 4)) + 
      guides(size = guide_legend(override.aes = list(shape = 1))) 

enter image description here

+0

太棒了!正是我在找什么。谢谢! – Tim