我试图创建一个水平堆叠酒吧,但无法做到这一点,也希望使酒吧动态一样(水平,垂直)对齐。
我也想显示N与标签一样,如下图所示。
proba <- data.frame(PartnerName = c("China", "Brazil", "Argentina", "UE", "US"), Food = c("12%","22%","36%","40%","51"), Machinery = c("91%","78%","64%","60%","49%"), Total = c(26,28,43,34,25))
graph_data <- proba %>% select(-Total)
graph_data %>%
pivot_longer(-PartnerName) %>%
ggplot(aes(x=PartnerName, y=value, fill=name))+
geom_bar(width = 0.9,stat="identity",position = "stack")
1条答案
按热度按时间46scxncf1#
更新:带有一些解释的代码(删除了coord_flip),如@tjebo建议:
1.我们使用
mutate
和paste0
为标签创建label_x
1.使用
parse_number()
(我最喜欢的函数),我们从xx%中提取数字。1.使用
pivot_longer()
以长格式获取数据(长格式是ggplot 2的首选格式)1.使用geom_text,我们将百分比数字添加到条形图中。
1.一些调整:将图例移至底部,删除标签x和y轴,并将背景留空。
数据:
**第一个答案:**大概是这样的:
小心中国91%和12%不是100%