Вафельная диаграмма со временем по оси x

Я хотел бы построить вафельную диаграмму со временем по оси X в R, подобную этой, приведенной ниже. Кто-нибудь может помочь, пожалуйста? Спасибо.

Набор данных здесь:

df <- data.frame(spec = c("Rehab", "Cardiology", "Endocrine", "Respiratory", "General Surgery"), 
                 start.month = c(11,11,7,3,1) )

https://stackru.com/images/9d7c61c88487c992c7a552e6f25b6e1738e0add4.png

1 ответ

Решение

Возможно, что-то вроде этого?

library(ggplot2)

df2 <- do.call(rbind, lapply(seq(nrow(df)), function(i)
  data.frame(month = factor(month.abb[12:df$start.month[i]], levels = month.abb),
                            spec = df$spec[i])))
df2$spec <- factor(df2$spec, levels = names(rev(sort(table(df2$spec)))))

ggplot(df2, aes(month, spec, colour = spec)) + 
  geom_point(size = 8, shape = 15) +
  coord_cartesian(ylim = c(1, 9)) +
  labs(y = "Cumulative no. of specialties",
       x = "Months",
       colour = "Specialties") +
  scale_color_manual(values = c("#ffc000", "#ed7d31", "#5a9bd5",
                                "#70ad46", "#44546b")) +
  theme_classic() +
  theme(axis.text.y.left = element_blank(), 
        axis.ticks.length.y = unit(0, "points"),
        legend.background = element_rect(colour = "black"),
        axis.text = element_text(size = 16),
        axis.title = element_text(size = 16))

Другие вопросы по тегам