Маркировка и тема ggalluvial сюжета в R - PullRequest
0 голосов
/ 06 июня 2018

В последние часы я пытался понять всю концепцию дизайна / темы / маркировки около ggalluvial , но мне не удалось.Через несколько минут я смог создать нужный мне график (благодаря пакету ggalluvial), но я не могу понять, как создать правильную метку / тему, которую я хотел бы иметь.

Этогде я сейчас нахожусь: Almost Done!

Вот где я был первоначально: white labels

Чтобы вы поняли, где яВот воспроизводимый пример

Titanic Alluvial

Я использовал следующий код:

library(ggalluvial)

ds <- as.data.frame(Titanic)

ggplot(ds,
   aes(weight = Freq, axis1 = Sex, axis2 = Class)) +
geom_alluvium(aes(fill = Sex), width = 1/12) +
geom_stratum(width = 1/4, fill = "black", color = "grey") + 
scale_x_continuous(breaks = 1:2, labels = c("Sex", "Class")) + 
scale_fill_manual(name = "", values=c("#A0A0A0", "#494949")) +              
ggtitle("Titanic Survival") +                            
theme_bw() +                                                          
geom_text(stat = "stratum", color="white",label.strata = TRUE,
        angle=c(90,90,0,0,0,0) , size=6, 
        nudge_y=c(1,2,3,4,5,0)) +
theme(legend.position = "bottom",
    title = element_text(size = 20),
    legend.text = element_text(size = 20),
    axis.text.y = element_blank(),
    axis.text.x = element_text(size=20))

Что я хотел бы изменить:

  • повернуть метки слева вертикально
    • сделано
  • сделать метки справа не перекрывающимися (не видно приТитаник данные)
    • Я попытался подтолкнуть.Но может быть более полезно разместить эти легенды вне графика, может быть, как на оси?
  • удалить метки оси y
    • сделано
  • Узнайте, с помощью какой команды я могу изменить размер каждого элемента текста (заголовок, легенда, метки, метки оси)
    • купол

Я очень рад за любую помощь в этом.Спасибо.

1 Ответ

0 голосов
/ 06 июня 2018

Вы можете попробовать:

ggplot(ds,
       aes(weight = Freq, axis1 = Sex, axis2 = Class)) +
  geom_alluvium(aes(fill = Sex), width = 1/12) +
  geom_stratum(width = 1/16, fill = "black", color = "grey") + 
  scale_x_continuous(breaks = 1:2, labels = c("Sex", "Class")) + 
  scale_fill_manual(name = "", values=c("#A0A0A0", "#494949")) +              
  ggtitle("Titanic Survival") +                            
  theme_bw() +                                                          
  geom_text(stat = "stratum", color="red",label.strata = TRUE, angle=c(0,0,45,45,45,45),size=5) +              
  theme(legend.position = "bottom",
        title = element_text(size = 20),
        legend.text = element_text(size = 20),
        axis.text.y = element_blank(),
        axis.text.x = element_text(size=20))

enter image description here

  • добавить вектор с такой же длиной меток, как angle=c(0,0,45,45,45,45)
  • добавить axis.text.y = element_blank() в theme()
  • в ожидании
  • Размеры через theme
    • через theme(), такие как метки оси X
    • текст в сюжете через size=5 в geom_text()
...