Как я могу автоматизировать мой код вместо того, чтобы вручную изменять значения? - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть код для россыпного ggplot.Я хотел бы сделать свой код для функции, поэтому он будет автоматическим, а не писать один и тот же код для разных значений.Единственное, что вам нужно изменить, это данные, как я могу это сделать?

Это мой текущий код

 ggplot(as.data.frame(allu),
   aes(y = allu$Freq, axis1 = allu$a1, axis2 = allu$a2, axis3 = allu$a3,axis4 = allu$a4, axis5 = allu$a5, axis6 = allu$a6, axis7 = allu$a7, axis8 = allu$a8)) +
   geom_alluvium(aes(fill = allu$a1), width = 1/12) +
  geom_stratum(width = 1/12, fill = "black", color = "grey") +
  geom_label(stat = "stratum", label.strata = TRUE) +
  scale_x_discrete(limits = c ("a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8"), expand = c(0.02, 0.02)) +  >     scale_fill_brewer(type = "qual", palette = "Set1") +
  ggtitle("CLL")  

Могу ли я сделать этот код дляфункция, которая будет автоматически запускать график без ручного ввода значений, а только изменять данные?

1 Ответ

0 голосов
/ 05 февраля 2019

вероятно, вот так
(примечание: я только что скопировал ваш код, не проверял, работает ли он на самом деле)

myfunction <- function( data_ ) {
  ggplot( data_,
     aes(y = data_$Freq, axis1 = data_$a1, axis2 = data_$a2, axis3 = data_$a3,axis4 = data_$a4, axis5 = data_$a5, axis6 = data_$a6, axis7 = data_$a7, axis8 = data_$a8)) +
    geom_alluvium(aes(fill = data_$a1), width = 1/12) +
    geom_stratum(width = 1/12, fill = "black", color = "grey") +
    geom_label(stat = "stratum", label.strata = TRUE) +
    scale_x_discrete(limits = c ("a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8"), expand = c(0.02, 0.02)) + 
    scale_fill_brewer(type = "qual", palette = "Set1") +
    ggtitle("CLL")  
}

, а затем позвонил, используя

myfunction( data_ = as.data.frame(allu) )
...