如何关闭 ggplot 堆叠条形图中的颜色图例?所有解决方案都失败了

Posted

技术标签:

【中文标题】如何关闭 ggplot 堆叠条形图中的颜色图例?所有解决方案都失败了【英文标题】:How to turn off color legend in a ggplot stacked bar graph? all solutions have failed 【发布时间】:2021-08-15 05:35:47 【问题描述】:

我有一个堆积条形图,ggplot 自动生成了一个我想删除的颜色图例。我已经尝试过 show.legend=FALSE、theme(legend.position="none") 和 guides(colour=FALSE),但这些解决方案都没有删除图例。我将包含下面的代码。

ggplot(unique_per_day, aes(fill=Entity.Name,y=prop, x=Entity.Type, width = org.count, label=Entity.Name), show.legend=FALSE) + 
    geom_bar(position="fill", stat="identity", colour= "black") + 
    facet_grid(~Entity.Type, scales="free_x", space="free_x" ) +
    theme(legend.position="none", panel.spacing.x = unit(0, "npc")) +
    guides(colour=FALSE) +
    geom_text(size = 2.4, position = position_stack(vjust = 0.5)) +
    theme_void()

【问题讨论】:

你试过在theme_void()之后设置theme(legend.position="none")吗? 如果您创建一个小的可重现示例以及预期的输出,这将更容易提供帮助。阅读how to give a reproducible example。 【参考方案1】:

如果您提供了示例数据集(例如 dput(unique_per_day)),则故障排除会更容易,但我猜您需要删除“填充”美学,而不是“颜色”美学,例如

ggplot(unique_per_day, aes(fill=Entity.Name,y=prop, x=Entity.Type, width = org.count, label=Entity.Name)) + 
    geom_bar(position="fill", stat="identity", colour= "black", show.legend=FALSE) + 
    facet_grid(~Entity.Type, scales="free_x", space="free_x" ) +
    guides(fill = FALSE) +
    geom_text(size = 2.4, position = position_stack(vjust = 0.5)) +
    theme_void() +
    theme(legend.position="none", panel.spacing.x = unit(0, "npc"))

编辑

这是一个使用“palmerpenguins”示例数据集的示例:

附上原代码:

library(tidyverse)
library(palmerpenguins)

penguins %>%
  na.omit() %>%
  filter(island == "Dream") %>%
  ggplot(aes(x = species, y = 1, fill = sex)) +
  geom_bar(position = "fill", stat = "identity", colour = "black") +
  facet_grid(~ island, scales = "free_x", space = "free_x") +
  theme(legend.position = "none", panel.spacing.x = unit(0, "npc")) +
  guides(colour = FALSE) +
  theme_void()

将“theme_void”移到“主题”上方:

penguins %>%
  na.omit() %>%
  filter(island == "Dream") %>%
  ggplot(aes(x = species, y = 1, fill = sex)) +
  geom_bar(position = "fill", stat = "identity", colour = "black") +
  facet_grid(~ island, scales = "free_x", space = "free_x") +
  theme_void() +
  theme(legend.position="none", panel.spacing.x = unit(0, "npc"))

【讨论】:

以上是关于如何关闭 ggplot 堆叠条形图中的颜色图例?所有解决方案都失败了的主要内容,如果未能解决你的问题,请参考以下文章

如何将值放在格条形图的条形图中并有图例

在ggplot中向条形图添加图例

ggplot2:使用填充geom_bar指定颜色时缺少图例

更改 ggplotly() 重叠条形图中的条形颜色

如何在 plotly express 条形图中隐藏颜色条和图例?

R语言ggplot2可视化堆叠的条形图(stacked bar plot)并在每一个条形图的的中间添加对应的数值值标签定位在geom_col堆叠的条形图中的每个条形段的中间