我在R ggplot 2中为分组条形图添加标签时遇到了一个问题。
图中的条形图是分组的,组内的条形图具有相同的颜色(必需!),组内的每个条形对应于一个日期。
我当前的Plot图片:
我需要在每个条下面添加一个日期,所以它们在水平轴下面。但同时我也不需要知道那些小团体的名字。所以,我只需要每个酒吧下面的日期。
我的dataframe看起来像这样:
df <- data.frame(
dates = c('2022-01-01', '2022-01-01', '2022-01-01', '2022-01-01', '2022-01-01', '2022-02-01', '2022-02-01', '2022-02-01', '2022-02-01', '2022-02-01', '2022-03-01', '2022-03-01', '2022-03-01', '2022-03-01', '2022-03-01'),
group = c('A', 'B', 'C', 'D', 'E', 'A', 'B', 'C', 'D', 'E', 'A', 'B', 'C', 'D', 'E'),
value = c(1.4, 0.2, 0.3, 0, -0.2, 1.4, 0.3, 0.2, 0.2, 0.5, 1, 0, 0, 0, 0.4)
)
创建图的代码如下所示:
ggplot(df, aes(group=dates, y=value, x=group, fill=group)) +
geom_bar(width = 0.8, position = position_dodge(width = 0.9), stat="identity", color="black") +
scale_fill_manual(values=c("#E03225", "#EB6121", "#7F7F7F", "#F5F5F5", "#000000"), name = "") +
scale_x_discrete(labels= c("", "", "", "", "")) + # switch off labels for 'group'
xlab("") +
ylab("") +
theme_minimal() +
theme(legend.position="bottom", legend.direction = "horizontal")
我尝试了几种解决方案:“scale_x_continuous”从这里(Axis labels for each bar and each group in bar charts with dodged groups),并且还通过“facet_wrap”或“facet_grid”添加标签。第一个与我的scale_x_discrete冲突,后两个重组情节(这是预期的)。
1条答案
按热度按时间ycl3bljg1#
一种选择是使用刻面,即通过
group
的面,允许将dates
Map到x
上。为了摆脱组标签,我通过主题选项删除了条带文本。最后,为了避免日期标签重叠,我使用guide_axis(n.dodge = 2)
将它们放在两行上。