保留组合条形图中缺失列的位置
Preserve location of missing columns in combined bar plot
一个非常常见的发布问题是在 ggplot 中缺少列时保留条形宽度(例如 1, 2。除了此修复之外,我还需要保留条形图的相对位置缺少条形图(即间隙应该在条形图所在的位置)。
ggplot(mtcars, aes(factor(cyl), fill = factor(gear))) +
geom_bar(position = position_dodge(preserve = "single"))
您会注意到在 8 个气缸组(最右边)中缺少一个绿色列(齿轮 = 4)。 preserve="single"
已更正宽度,但蓝色条(齿轮=5)已向左移动以填充空白。
我该如何防止这种情况发生?我希望在绿色的地方有一个空隙。
感谢您的帮助。
我们根据'cyl'、'gear'得到频率count
,用complete
扩展数据得到所有的组合,同时fill
将 'n' 列计数为 0(默认情况下,complete
中未提及的所有列都会在缺少组合的情况下获得 NA),然后使用 ggplot
进行绘图
library(dplyr)
library(tidyr)
library(ggplot2)
mtcars %>%
count(cyl, gear) %>%
complete(cyl = unique(cyl), gear = unique(gear),
fill = list(n = 0)) %>%
ggplot(aes(factor(cyl), n, fill = factor(gear))) +
geom_bar(stat = 'identity', position = 'dodge')
一个非常常见的发布问题是在 ggplot 中缺少列时保留条形宽度(例如 1, 2。除了此修复之外,我还需要保留条形图的相对位置缺少条形图(即间隙应该在条形图所在的位置)。
ggplot(mtcars, aes(factor(cyl), fill = factor(gear))) +
geom_bar(position = position_dodge(preserve = "single"))
您会注意到在 8 个气缸组(最右边)中缺少一个绿色列(齿轮 = 4)。 preserve="single"
已更正宽度,但蓝色条(齿轮=5)已向左移动以填充空白。
我该如何防止这种情况发生?我希望在绿色的地方有一个空隙。
感谢您的帮助。
我们根据'cyl'、'gear'得到频率count
,用complete
扩展数据得到所有的组合,同时fill
将 'n' 列计数为 0(默认情况下,complete
中未提及的所有列都会在缺少组合的情况下获得 NA),然后使用 ggplot
library(dplyr)
library(tidyr)
library(ggplot2)
mtcars %>%
count(cyl, gear) %>%
complete(cyl = unique(cyl), gear = unique(gear),
fill = list(n = 0)) %>%
ggplot(aes(factor(cyl), n, fill = factor(gear))) +
geom_bar(stat = 'identity', position = 'dodge')