gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 04:05:08 25 4
gpt4 key购买 nike

在 R ggplot 中,我需要制作一个条形图,其中条形图根据称为“模式”的因素组合在一起。每组条之间应该有间距。

我在 SO 中看到之前曾出现过此问题的不同版本,但提供的答案似乎不适用于我的情况。

这是我的数据框:

> 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

这是我的代码,我在其中尝试实现给出的答案 herehere .

  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))

这是结果中没有组间空间的图形:

enter image description here

最佳答案

试试这个(我在你的 ggplot 中添加了 scale_x_discrete 东西,不想弄乱数据框本身的内容)

  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))

结果(请注意,我没有为您的 Eigens 输入所有小数位):enter image description here

关于r - 如何在条形图(ggplot)中的条形组之间添加空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51502797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com