首页 > 解决方案 > 围绕轴标签绘制彩色框

问题描述

考虑这个简单的例子

library(tidyverse)
tibble(x = as.factor(c('good', 'neutral', 'bad')),
       y = as.factor(c('bad', 'neutral', 'bad'))) %>% 
  ggplot(aes(x = x, y = y)) + geom_point()

在此处输入图像描述

我想将 x 标签 ( good, neutral, bad) 放在不同颜色的框中。例如,good(在 x 和 y 轴上)将被一个绿色的小盒子包围,依此类推。

我可以这样做ggplot2吗?

标签: rggplot2

解决方案


像这样?

tibble(x = as.factor(c('good', 'neutral', 'bad')),
y = as.factor(c('bad', 'neutral', 'bad'))) %>%
ggplot(aes(x = x, y = y)) + 
  geom_point() + 
  theme(axis.text.x = element_text(color = c('red', 'blue', 'green')))

你的情节:

你的情节

编辑

另一种漂亮的 Ghetto 解决方案使用grid

tibble(x = as.factor(c('good', 'neutral', 'bad')),
y = as.factor(c('bad', 'neutral', 'bad'))) %>%
ggplot(aes(x = x, y = y)) + 
  geom_point()

grid::grid.polygon(x = c(.3,.3,.25,.25), y = c(.07,.04,.04,.07),gp = gpar(col = 'green', fill = 'green', alpha = .5))
grid::grid.polygon(x = c(.525,.525,.575,.575), y = c(.07,.04,.04,.07),gp = gpar(col = 'red', fill = 'red', alpha = .5))
grid::grid.polygon(x = c(.79,.79,.86,.86), y = c(.07,.04,.04,.07),gp = gpar(col = 'blue', fill = 'blue', alpha = .5))

贫民区的方式


推荐阅读