Как добавить текст в раздел легенды вафельного графика в R?
Пытаюсь создать вафельный сюжет. Мои данные и график вафли выглядели так:
library(waffle)
parts=c("Extraction"=397, "Operculectomy"=11, "Medication"=3)
waffle(parts, row=12, colors=c("#CC0000", "#006600", "#669999"))
Я хочу добавить текст на этикетку раздела легенды этого сюжета, как показано ниже:
Добыча (397/413)
Оперкулэктомия (11/413)
Лекарства (3/413)
1 ответ
На основании документации waffle
пакет, я не уверен, что вы можете установить много параметров для своего waffle
сюжеты.
Однако вы можете изменить названия категорий ваших данных раньше, выполнив:
library(waffle)
parts=c("Extraction"=397, "Operculectomy"=11, "Medication"=3)
names(parts) = paste0(names(parts),"(",parts,"/",sum(parts),")")
waffle(parts, row=12, colors=c("#CC0000", "#006600", "#669999"))
Это дает вам следующий график:
Альтернатива с использованием ggplot2
В качестве альтернативы вы можете сделать "вафельный" график, используя geom_tile
от ggplot2
. Процедура немного менее проста, но, по крайней мере, вы можете пользоваться всеми инструментами настройкиggplot2
. Чтобы получить такой же график, вы можете:
library(ggplot2)
categ_table = c("Extraction"=397, "Operculectomy"=11, "Medication"=3)
df <- expand.grid(y = 1:10, x = 1:(round(sum(categ_table)/10)+1))
df$Category = factor(c(rep(names(categ_table),categ_table),rep(NA,nrow(df)-sum(categ_table))))
df = df[!is.na(df$Category),]
ggplot(df, aes(x = x, y = y, fill = Category)) +
geom_tile(color = "white", size = 0.5) +
scale_x_continuous(expand = c(0, 0)) +
scale_y_continuous(expand = c(0, 0))+
theme(legend.title = element_blank(),
panel.background = element_rect(fill = 'white', colour = 'white'),
axis.text = element_blank(),
axis.title = element_blank(),
axis.ticks = element_blank())+
scale_fill_manual(values = c("#CC0000", "#006600", "#669999"),
breaks = names(categ_table),
labels = c("Extraction (397/411)","Operculectomy (11/411)", "Medication (3/411)"))
И вы получите следующий график:
Надеюсь, это ответит на твой вопрос