r - 如何减少 geom_text 标签之间的空间?
问题描述
我设法构建了以下图,其中我使用仅包含 geom_text 标签的精简图来展示另一个图的组内人口:
但是 geom_text 标签之间的距离太大,并且组内人口与他们应该代表的组在垂直方向上并不“完全”对齐。
有没有办法改变这个距离?
该图的代码如下:
gymnasiegrov_utfall<-totdata%>%as_tibble() %>%
group_by(gymnasiegrov, totstatus_tri) %>%
summarise(antal = n()) %>%
mutate(andel = antal / sum(antal))%>%
ggplot(.) +
geom_col(mapping = aes(x = gymnasiegrov, y = andel)) +
coord_flip() +
facet_wrap(~totstatus_tri)
gymnasiegrov_utfall_antal<-totdata%>%
ggplot(aes(x=gymnasiegrov))+
geom_text(stat='count',aes(label=..count..),hjust="inward",y=1) +
coord_flip()+
theme_invisible+
scale_y_discrete(breaks=NULL)+
scale_x_discrete(breaks=NULL)
ggarrange(gymnasiegrov_utfall, gymnasiegrov_utfall_antal, ncol=2, widths = c(.85,.15))
每个类别有 1 个观察值的数据子集:
structure(list(gymnasiegrov = structure(c(1L, 10L, 6L, 7L, 11L,
5L, 16L, 3L, 9L, 14L, 12L, 8L, 13L, 15L, 18L, 4L, 2L, 17L), .Label = c("Oklart",
"friskoleprogram", "Handels- och administrationsprogrammet",
"specialutformat program", "Vård- och Omsorgsprogrammet", "teknikprogrammet",
"komvux", "samhälls- och ekonomiprogrammet", "medieprogrammet",
"naturvetenskapliga programmet", "samhällsvetenskapliga programmet",
"bygg, el, fordon, hantverk, sjöfart, industriteknik", "naturbruksprogrammet",
"estetiska programmet", "Barn- och Fritidsprogrammet", "ekonomiprogrammet/ ekonomi",
"ekonomiprogrammet/ juridik", "Hotell- och Restaurang"), class = c("ordered",
"factor")), totstatus_tri = structure(c(2L, 3L, 1L, 3L, 2L, 3L,
2L, 1L, 1L, 1L, 3L, 3L, 1L, 2L, 1L, 2L, 3L, 1L), .Label = c("pågående studier",
"tidigt avbrott eller återbud", "sent avbrott"), class = c("ordered",
"factor"))), row.names = c(NA, -18L), groups = structure(list(
gymnasiegrov = structure(1:18, .Label = c("Oklart", "friskoleprogram",
"Handels- och administrationsprogrammet", "specialutformat program",
"Vård- och Omsorgsprogrammet", "teknikprogrammet", "komvux",
"samhälls- och ekonomiprogrammet", "medieprogrammet", "naturvetenskapliga programmet",
"samhällsvetenskapliga programmet", "bygg, el, fordon, hantverk, sjöfart, industriteknik",
"naturbruksprogrammet", "estetiska programmet", "Barn- och Fritidsprogrammet",
"ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ juridik",
"Hotell- och Restaurang"), class = c("ordered", "factor")),
.rows = list(1L, 17L, 8L, 16L, 6L, 3L, 4L, 12L, 9L, 2L, 5L,
11L, 13L, 10L, 14L, 7L, 18L, 15L)), row.names = c(NA,
-18L), class = c("tbl_df", "tbl", "data.frame"), .drop = TRUE), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"))
解决方案
我仍然认为使用我昨天描述的方法会更简单,但是如果您更喜欢这种方法的外观,那么您可以执行以下操作:
library(ggpubr)
gymnasiegrov_utfall <- totdata %>%
as_tibble() %>%
group_by(gymnasiegrov, totstatus_tri) %>%
summarise(antal = n()) %>%
mutate(andel = antal / sum(antal)) %>%
ggplot(.) +
geom_col(mapping = aes(x = gymnasiegrov, y = andel)) +
coord_flip() +
facet_wrap(~totstatus_tri)
gymnasiegrov_utfall_antal <- totdata %>%
ggplot(aes(x = gymnasiegrov)) +
geom_text(stat = 'count', aes(label = ..count..), y = 1) +
coord_flip() +
theme_pubclean() +
theme(strip.text = element_text(margin = margin(1, 0, 5, 0))) +
labs(y = "\n", x = "") +
scale_y_discrete(breaks = NULL) +
scale_x_discrete(breaks = NULL) +
facet_wrap(.~ "count")
ggarrange(gymnasiegrov_utfall, gymnasiegrov_utfall_antal, ncol = 2, widths = c(.85,.15))
推荐阅读
- visual-studio - 每次更改分辨率时,Visual Studio 2017 工具箱中的 DLL 文件都会被删除
- sql - 如何在 SQL Server 中将表数据的值更改为“可用”?
- python - 使用 Chalice 时无法访问请求 json_body
- react-native - withNavigation 只能用于导航器的视图层次结构
- java - java socket发送压缩对象
- mongodb - 在 mongodb 中搜索日期
- c# - WPF C# 问题:如何在 Visual Studio 中创建类似工具箱、服务器资源管理器的停靠面板?
- javascript - 如何在 javascript 中使用 CORS 从 Dialogflow (Api.Ai) 获取响应
- c# - XSLT 和递归生成表
- php - 如何在codeiginter中将购物车中的商品数量限制为3?