1

I am trying to change the transparency of the flow elements of an alluvial plot. I know I should change the value of 'alpha' but I am not sure where in the code I have to add this parameter. The following is my code:

library(ggplot2)
library(ggalluvial)

ggplot(sp.alluvial, aes(x = stage, stratum = state, alluvium = pks, fill = state, label = state)) +
  scale_fill_brewer(type = "qual", palette = "Set2") +
  geom_flow(stat = "alluvium", lode.guidance = "frontback", aes(fill = state), aes.flow = "backward") + 
  geom_stratum() +
  theme(legend.position = "bottom", axis.text.y = element_blank(), axis.ticks.y = element_blank()) 

I have tried the next options:

geom_flow(stat = "alluvium", lode.guidance = "frontback", aes(fill = state), aes.flow = "backward", alpha = 0.6)

geom_flow(stat = "alluvium", lode.guidance = "frontback", aes(fill = state, alpha = 0.6), aes.flow = "backward")

and

+ geom_density(alpha = 0.6)

Any ideas?

Thanks!

Rui Barradas
  • 70,273
  • 8
  • 34
  • 66

1 Answers1

1

The following seems to work.
The plot is based on the second example in geom_lode, since the question does not have a posted data set.

I have plotted the same with different values of the alpha argument, 0.2 and 0.8, and the flows' transparency does change.

library(ggplot2)
library(ggalluvial)

gg <- ggplot(as.data.frame(Titanic),
             aes(y = Freq, 
                 axis1 = Class, axis2 = Sex, axis3 = Age,
                 fill = Survived))

gg + 
  geom_flow(alpha = 0.5) + 
  geom_stratum() + 
  geom_lode() + 
  geom_text(stat = "stratum", infer.label = TRUE)

enter image description here

Rui Barradas
  • 70,273
  • 8
  • 34
  • 66
  • Thank you so much! it works, although I had to change transparency to 0.2 to see a difference because my dataset is very big (the input table has thousands of rows) and a smaller change in transparency was not making a clear difference as in smaller datasets. – paola cornejo Jul 03 '20 at 03:23