ggplot2在图例上有边框,但在条形图中没有

hai*_*les 3 r border legend ggplot2

我正在尝试使用ggplot2创建条形图,边框用于图例颜色,但不用于条形图.

我试图添加scale_fill_manual映射到市政当局的'grey32'以及legend.key = element_rect(colour='grey32')但它们都没有在图例元素周围添加边界.

这就是我对这段代码的看法:

ggplot(muns, aes(x=Regional.District, y=Population.2010, fill=Municipality)) +
  geom_bar(stat='identity', width=0.6) +
  xlab("Regional District") + ylab("Population 2010") +
  scale_y_continuous(labels = comma) +
  scale_fill_manual(values=fill.vals, breaks=muns$Municipality, labels=muns$lab) +
  geom_text(aes(y=bylaw.sums[1], label=c('No Bylaw')), colour = "gray32") +
  geom_text(aes(y=bylaw.sums[1]*2+bylaw.sums[2], label=c('Bylaw')), colour = "gray32") +
  theme(text=element_text(size=12, family="Open Sans"))
Run Code Online (Sandbox Code Playgroud)

bar_chart_with_no_borders

这就是我想要的: bar_chart_with_borders_on_legend_but_not_chart

我试过了:

scale_colour_manual(values=greys, breaks=muns$Municipality, labels=muns$lab) +
Run Code Online (Sandbox Code Playgroud)

以及

theme(legend.key = element_rect(colour='grey32'))
Run Code Online (Sandbox Code Playgroud)

谢谢!

Gre*_*gor 5

尝试 + guides(fill = guide_legend(override.aes = list(colour = "black")))

工作范例:

ggplot(iris, aes(x = Species, fill = Species)) +
    geom_bar() + 
    guides(fill = guide_legend(override.aes = list(colour = "black")))
Run Code Online (Sandbox Code Playgroud)

在这种情况下,你似乎需要用"u"拼写"颜色".

我通常使用此方法执行相反操作(从填充图例中删除颜色)或覆盖alpha图例的设置.

通过您的样品的情节来看,你可能也想通过reverse = TRUE对guide_legend,这将对底部的橙色,白色的顶部,以配合您的情节.