In R ggplot, I need to make a barplot where bars are grouped together based on a factor called "Mode". There should be spacing between each group of bars.
I see in SO that different versions of this problem have come up previously, but the answers provided don't seem to apply to my case.
Here is my data.frame:
> df_mainContributors
Top_contributor Eigvec_value Mode
1 Indonesia Cassava dried 0.3489285 2
2 China, mainland Sweet potatoes -0.3280290 2
3 China, mainland Maize -0.2848236 2
4 Indonesia Potatoes -0.2749160 2
5 Thailand Cottonseed -0.3844600 3
6 Thailand Soybeans 0.3531400 3
7 Indonesia Maize 0.3308546 3
8 China, mainland Millet -0.2620598 3
9 China, mainland Potatoes -0.3883072 4
10 Thailand Rice 0.3108829 4
11 China, mainland Oil, soybean 0.2783780 4
12 Thailand Sweet potatoes 0.2754683 4
Here is my code, where I have tried to implement the answers given here and here.
df_plot <- df_mainContributors
df_plot$Mode <- as.factor(df_plot$Mode)
df_plot$Top_contributor <- factor(df_plot$Top_contributor, levels = unique(df_plot$Top_contributor))
dodge <- position_dodge(width = 0.9)
ggplot(df_plot, aes(x = Top_contributor, y = Eigvec_value, fill = Mode)) +
geom_bar(color = "black", stat = "identity", position = dodge, width = 0.9) +
theme(axis.text.x = element_text(angle = 60, hjust = 1))
And here is the no-space-between-groups-having graphic that results: