If you are looking for feedback, here is another suggestion for future posts: I found the use of violin plots for discrete data to be confusing. To be honest, I still am not sure how to interpret the unlabeled Y axis. I think a histogram would have been easier for me (and others) to interpret.
But suggestions aside, I found your article to be interesting. Thank you for it.
I second the criticism of using violin plots here. A violin plot is a kernel density plot. It is designed to show a distribution at a scale much larger than variations in the data. Its raison d'etre is to smooth out and aggregate these small-scale variations.
But in this survey data, the values in the distribution are spaced far apart. The discretization is so large that the violin plots show meaningless and weirdly inconsistent curves between x-values which actually have data. A bar plot would be much clearer.
OP, I think you have done a fine job of styling your plots tastefully. But I recommend taking another look at the visual language you have chosen to communicate the data.
But suggestions aside, I found your article to be interesting. Thank you for it.