R 如何在条形图(ggplot)中的条形图组之间添加空间

R 如何在条形图(ggplot)中的条形图组之间添加空间,r,ggplot2,bar-chart,geom-bar,R,Ggplot2,Bar Chart,Geom Bar,在RGPlot中,我需要制作一个条形图,其中条形图根据一个称为“模式”的因子分组在一起。每组钢筋之间应有间距 我看到了,所以这个问题的不同版本以前已经出现过,但提供的答案似乎不适用于我的情况 这是我的data.frame: > df_mainContributors Top_contributor Eigvec_value Mode 1 Indonesia Cassava dried 0.3489285 2 2 China,

在RGPlot中,我需要制作一个条形图,其中条形图根据一个称为“模式”的因子分组在一起。每组钢筋之间应有间距

我看到了,所以这个问题的不同版本以前已经出现过,但提供的答案似乎不适用于我的情况

这是我的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
这是我的代码,在这里我试图实现给出的答案和

df_plot试试这个(我在ggplot中添加了scale_x_离散元素,不想弄乱数据帧本身的内容)

结果(注意,我没有把你的特征值全部放在小数点后):

可能的重复项
  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))
  ggplot(df_plot, aes(x = Top_contributor, y = Eigvec_value, fill = Mode)) +
  geom_bar(color = "black", stat = "identity", position = dodge, width = 0.9) +
  scale_x_discrete(limits = c(levels(df_plot$Top_contributor)[1:4],
                              "ABC",
                              levels(df_plot$Top_contributor)[5:8],
                              "DEF",
                              levels(df_plot$Top_contributor)[9:12]),
                   labels = c("ABC" = "",
                              "DEF" = "")) +
  theme(axis.text.x = element_text(angle = 60, hjust = 1))