ggplot2:如何更改图例中符号的样式

3

我可以帮您进行翻译,这篇文章涉及到IT技术。请注意,我的任务是将内容翻译成中文,使其更易懂。

我在绘制图例时遇到了一个问题,就是图例中的符号与图表本身不匹配。

假设数据有以下四列:

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))
)

我希望点的大小(通过“Rank”区分)和使用不同的符号(十字架和空心圆,通过“Quantified”区分)来表示。

我的代码是:

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”),但似乎都不太对。

有什么建议吗?


你能澄清一下你想要什么吗?听起来你可能想让等级图例中的圆是空心的,没有填充的圆? - joran
是的,没错。在图中,圆圈是空心的,但在排名图例中它们是实心的。我尝试澄清了这篇文章。 - Tim
1个回答

10

现在我确定这就是你想要的:

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)))

在此输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接