r - R ggplot2中条形图上标签位置的问题
问题描述
我想让所有标签的值都在条形旁边。其中一根柱线具有负值,它会与 position_dodge 产生问题。我无法按照我喜欢的方式使用 hjust 设置它,因为带有负值的栏上的标签放置在完全不同的位置。我应该如何解决这个问题?
数据集:https ://imgur.com/a/Dg70uO5 (我没有足够的声誉将其附加到帖子中)
ggplot(USA, aes(x = Values,
y = fct_reorder(factor(Categories), Values),
fill = Categories)) +
scale_fill_manual(values = colors) +
geom_col(width = 0.65) +
geom_text(aes(label = format(x= paste0(round(Values/1000000, 2), " mil t"))),
size = 3.3, position = position_dodge2(width = 0.9), hjust = -0.1) +
labs(title = "Greenhouse gas emissions by sector, United States 2016") +
scale_y_discrete(expand = expansion(mult = c(0.05, 0.05))) +
scale_x_continuous(breaks = c(0, 100000000, 300000000,
500000000, 1000000000,
1500000000, 2000000000),
labels = c("0", "100 mil", "300 mil",
"500 mil", "1 bilion",
"1.5 bilion", "2 bilion"),
expand = expansion(mult = c(0.15, 0.15))) +
theme(legend.position = "none",
axis.title = element_blank(),
panel.grid = element_blank(),
panel.background = element_blank(),
axis.ticks.y = element_blank(),
axis.text.y = element_text(family = "sans", size = 9),
title = element_text(size = 11, family = "sans", face = "bold"))
条形图的照片(我没有足够的声誉将其附加到帖子中):https ://imgur.com/a/mVlXuc7
还尝试使用ggfittext
“geom_bar_text”,但使用此解决方案时,我遇到了标签大小的问题,而且我不知道如何更改它。此外,有些值不适合条形图。下面的代码:
ggplot(USA, aes(x = Values,
y = fct_reorder(factor(Categories), Values),
fill = Categories,
label = format(x= paste0(round(Values/1000000, 2), " mil t")))) +
scale_fill_manual(values = colors) +
geom_col(width = 0.65) +
labs(title = "Greenhouse gas emissions by sector, United States 2016") +
scale_y_discrete(expand = expansion(mult = c(0.05, 0.05))) +
scale_x_continuous(breaks = c(0, 100000000, 300000000,
500000000, 1000000000,
1500000000, 2000000000),
labels = c("0", "100 mil", "300 mil",
"500 mil", "1 bilion",
"1.5 bilion", "2 bilion"),
expand = expansion(mult = c(0.15, 0.15))) +
geom_bar_text(position = "dodge") +
theme(legend.position = "none",
axis.title = element_blank(),
panel.grid = element_blank(),
panel.background = element_blank(),
axis.ticks.y = element_blank(),
axis.text.y = element_text(family = "sans", size = 9),
title = element_text(size = 11, family = "sans", face = "bold"))
条形图照片(带geom_bar_text
):
https ://imgur.com/a/P6eSnhe
解决方案
推荐阅读
- javascript - 在 Wordpress 中向菜单项添加类
- wordpress - Wordpress Redux 框架 - 插件中无法访问全局 opt_name
- sql - 如何将查询结果与现有表连接以执行 UPDATE?
- delphi - 执行 DbiWriteBlock 函数后 iRecords 变量没有变化
- c# - ASP.NET MVC 应用的灾难恢复
- elasticsearch - 在 Liferay 的 BooleanQuery 中使用按条款过滤
- c - ANSI C:声明“字符串数组”类型的指针
- android - 检测背景壁纸是否太亮或太暗
- firebase - Expo firebase 身份验证提供程序未定义
- java - 在 JPA 或 Hibernate 中更新多对多关系