I have a question where I am having some trouble with small counts in the category "Worse". Decreasing fontsize even more will decrease the readability (changing the vertical height is also not the solution for me). Does somebody have an ingenious idea of presenting the category (arrow with textbox e.g., but how?)
library(alluvial)
library(ggalluvial)
library(ggplot2)
Shortterm<-c("Healed","Impoved","Same","Worse","Healed","Improved","Same","Worse","Healed","Improved","Same","Worse")
Longterm<-c("Healed","Healed","Healed","Healed","Improved","Improved","Improved","Improved","Worse","Worse","Worse","Worse")
Frequence<-c(28,2,0,1,14,6,3,0,1,1,0,0)
Order<-c(0,0,0,0,1,1,1,1,2,2,2,2)
Improved<-c("Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","No","No","No","No")
output<-data.frame(Shortterm,Longterm,Frequence,Order,Improved)
output$Improved <- factor(output$Improved, levels = c("Yes", "No"))
ggplot(data = output,
aes(axis1 = Shortterm, axis2 = Longterm,
y = Frequence)) +
scale_x_discrete(limits = c("Short-term \n ~ 6 months", "Long-term \n ~ 15 years"),expand = c(.2, .05),position="bottom") +
scale_y_continuous(label = scales::percent_format(scale = 100 /n_id),breaks=c(0,1/4*n_id,1/2*n_id,3/4*n_id,n_id)) +
geom_alluvium(aes(fill = Improved)) +
geom_stratum() +
geom_text(stat = "stratum", aes(label = after_stat(stratum))) +
scale_fill_manual(values = c("green", "red"))+
theme_minimal()
I found the answer: