gpt4 book ai didi

r - 关闭 ggplot 中的一些图例

转载 作者:行者123 更新时间:2023-12-03 04:10:25 27 4
gpt4 key购买 nike

假设我有一个包含多个图例的 ggplot。

mov <- subset(movies, length != "")
(p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
geom_point()
)

我可以像这样关闭所有图例的显示:

(p1 <- p0 + theme(legend.position = "none"))

show_guide = FALSE 传递给 geom_point (按照 this question )会关闭形状图例。

(p2 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
geom_point(show_guide = FALSE)
)

但是如果我想关闭颜色图例怎么办?似乎没有办法告诉 show_guide 将其行为应用到哪个图例。并且没有关于尺度或美学的 show_guide 参数。

(p3 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
scale_colour_discrete(show_guide = FALSE) +
geom_point()
)
# Error in discrete_scale

(p4 <- ggplot(mov, aes(year, rating, shape = mpaa)) +
aes(colour = length, show_guide = FALSE) +
geom_point()
)
#draws both legends

This question建议控制图例的现代(自 ggplot2 v0.9.2 起)方法是使用 guides 函数。

我希望能够做类似的事情

p0 + guides(
colour = guide_legend(show = FALSE)
)

但是 guide_legend 没有 show 参数。

如何指定显示哪些图例?

最佳答案

您可以在 scale_..._...() 中使用 guide = "none" 来隐藏图例。

对于您的示例,您应该使用 scale_colour_continuous() 因为 length 是连续变量(而不是离散变量)。

(p3 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
scale_colour_continuous(guide = "none") +
geom_point()
)

或者使用函数guides(),您应该为您不想显示为图例的元素/美学设置“none”,例如,填充形状颜色

p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
geom_point()
p0+guides(colour = "none")

更新

两个提供的解决方案都适用于新的 ggplot2 版本 3.3.5,但该库中不再存在 movies 数据集。相反,您必须使用新包 ggplot2movies 来检查这些解决方案。

library(ggplot2movies)
data(movies)
mov <- subset(movies, length != "")

关于r - 关闭 ggplot 中的一些图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14604435/

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