gpt4 book ai didi

删除 ggplot2 中多余的图例

转载 作者:行者123 更新时间:2023-12-03 05:13:57 24 4
gpt4 key购买 nike

我有一个简单的数据框,我正在尝试使用 ggplot2 绘制组合线图和点图。假设我的数据如下所示:

df <- data.frame(x=rep(1:10,2), y=c(1:10,11:20), 
group=c(rep("a",10),rep("b",10)))

我正在尝试绘制一个情节:

g <- ggplot(df, aes(x=x, y=y, group=group))
g <- g + geom_line(aes(colour=group))
g <- g + geom_point(aes(colour=group, alpha = .8))
g

结果看起来不错,但有一个异常(exception)。它有一个额外的图例,显示我的 geom_point 图层的 alpha

Extra Legend for <code>geom_point</code> transparency

如何让图例显示组颜色,而不是显示我的 Alpha 设置的图例?

最佳答案

美学可以在 ggplot 调用中设置映射

  • aes(...) 中定义的美学是从数据中映射的,并创建一个图例。
  • 美学也可以通过在 aes() 外部定义来设置为单个值。

在本例中,您似乎希望设置 alpha = 0.8map color = group

为此,

alpha = 0.8 放置在 aes() 定义之外。

g <- ggplot(df, aes(x = x, y = y, group = group))
g <- g + geom_line(aes(colour = group))
g <- g + geom_point(aes(colour = group), alpha = 0.8)
g

enter image description here

对于任何映射变量,您可以通过在适当的scale_...中使用guide = 'none'来抑制图例的出现称呼。例如。

g2 <- ggplot(df, aes(x = x, y = y, group = group)) + 
geom_line(aes(colour = group)) +
geom_point(aes(colour = group, alpha = 0.8))
g2 + scale_alpha(guide = 'none')

这将返回相同的图

编辑@Joran 的评论很准确,我的回答更加全面

关于删除 ggplot2 中多余的图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11714951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com