Как поместить таблицу ниже ggplot и раскрасить строки по тому же коэффициенту группировки, что и график - PullRequest
1 голос
/ 18 апреля 2020

Я бы хотел разместить таблицу под своим графиком, но я бы хотел, чтобы цвет строк соответствовал цвету групп на графике (используя «предиктор» в качестве общего фактора группировки цветов). Может ли кто-нибудь помочь мне разобраться, как раскрасить строки таблицы по группам? Вот пример:

d <- data.frame(USArrests)
d$predictor <- factor(c(rep(c(1, 2), times = 25)))

library(dplyr)
label <- d %>% 
  group_by(predictor) %>%
  filter(Assault == max(Assault))

table <- data.frame(label$predictor)
table$measure1 <- c(1.45, 5.67)
table$measure2 <- c(4.55, 6.11)
table.p <- ggtexttable(table, rows = NULL,
                        theme = ttheme("mOrange"))

library(ggplot2)
a <- ggplot(d, aes(x=UrbanPop, y=Assault, fill=predictor)) +
  geom_col(position=position_dodge(width = 0, preserve = "single"), width = 5) +
  geom_text(data = label, aes(label = UrbanPop), vjust = -0.5)

ggarrange(a, table.p,
          ncol = 1, nrow = 2,
          heights = c(1, 0.4))

1 Ответ

1 голос
/ 18 апреля 2020

Это будет работать

table.p <- ggtexttable(table, rows = NULL,
                       theme = ttheme(colnames.style = colnames_style(color = "Black", fill = "grey"),
                                      tbody.style = tbody_style(color = "black", fill = as.factor(d$predictor))))

library(ggplot2)
a <- ggplot(d, aes(x=UrbanPop, y=Assault, fill=predictor)) +
  geom_col(position=position_dodge(width = 0, preserve = "single"), width = 5) +
  scale_fill_manual(values=as.factor(d$predictor))+
  geom_text(data = label, aes(label = UrbanPop), vjust = -0.5)

ggarrange(a, table.p,
          ncol = 1, nrow = 2,
          heights = c(1, 0.4))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...