4

我正在尝试制作一个华夫饼图以使用暗模式。这涉及更改背景颜色和瓷砖灌浆的颜色。我不知道如何做瓷砖灌浆。

我无法执行任何正常操作来更改颜色:

counts <- c(a = 701, b = 1094, c = 1756)
waffle(counts, 
   rows=50,
   size=0.75,
   legend_pos="bottom") + theme(legend.key.size=unit(3, "mm"),
                                rect=element_rect(fill='black',
                                                  color='black'),
                                plot.background=element_rect(fill='black'),
                                strip.background = element_rect(colour=NA, fill=NA),
                                panel.background=element_rect(fill='black', color='black'))

在此处输入图像描述

有一个拉取请求来执行此操作,但提出请求的人将其删除。似乎颜色被设置为每个瓷砖的边缘颜色,因为如果将 waffle 函数参数size增加到size=0,则不会得到瓷砖灌浆:

在此处输入图像描述

如何让瓷砖灌浆与背景一样黑?

4

1 回答 1

5

ggplot这看起来很 hacky,但是您可以在打印之前在对象中编辑您需要的内容。

library('waffle')
counts <- c(a = 701, b = 1094, c = 1756)
x <- waffle(counts, 
       rows=50,
       size=0.75,
       legend_pos="bottom") + theme(legend.key.size=unit(3, "mm"),
                                    rect=element_rect(fill='black',
                                                      color='black'),
                                    plot.background=element_rect(fill='black'),
                                    strip.background = element_rect(colour=NA, fill=NA),
                                    panel.background=element_rect(fill='black', color='black'))

x$layers[[1]]$aes_params$colour <- 'black'
x

在此处输入图像描述

更“ggplot 方式”类似于编辑/替换图层:

x %+replace% geom_tile(inherit.aes = TRUE, color = 'black')

但这不起作用。我不确定您是否可以在不弄乱顺序的情况下就地替换图层。但这基本上就是黑客所做的。

于 2020-09-28T19:58:19.607 回答