首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不使用分色键的情况下调整X轴的宽度和添加标签

如何在不使用分色键的情况下调整X轴的宽度和添加标签
EN

Stack Overflow用户
提问于 2021-08-26 03:12:50
回答 1查看 21关注 0票数 0

我想用ggplot2绘制一个分组的条形图,并且我有多个面,每个面有不同的测量值:

代码语言:javascript
运行
复制
> dput(df)
structure(list(X = c("Low birthweight", "Low birthweight", "Low birthweight", 
"Exclusive breast-feeding", "Exclusive breast-feeding", "Exclusive breast-feeding", 
"Stunting (under 5 years)", "Stunting (under 5 years)", "Stunting (under 5 years)", 
"Wasting (under 5 years)", "Wasting (under 5 years)", "Wasting (under 5 years)", 
"Overweight (under 5 years)", "Overweight (under 5 years)", "Overweight (under 5 years)", 
"Anaemia (Women of reproductive age)", "Anaemia (Women of reproductive age)", 
"Anaemia (Women of reproductive age)", "Obesity (adults)", "Obesity (adults)"
), Year = c(2015, 2025, 2030, 2019, 2025, 2030, 2020, 2025, 2030, 
2020, 2025, 2030, 2020, 2025, 2030, 2019, 2025, 2030, 2016, 2025
), Percentage = c(14.6, 10.5, 10.5, 44, 50, 70, 22, 15.4, 12.8, 
6.7, 5, 3, 5.7, 5.6, 3, 29.9, 14.3, 14.3, 13.1, 11.8)), class = c("spec_tbl_df", 
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -20L), spec = structure(list(
    cols = list(X = structure(list(), class = c("collector_character", 
    "collector")), Year = structure(list(), class = c("collector_double", 
    "collector")), Percentage = structure(list(), class = c("collector_double", 
    "collector"))), default = structure(list(), class = c("collector_guess", 
    "collector")), skip = 1), class = "col_spec"))

我只想在数据可用的年份使用X轴,所以我将其保留为scales="free",但是对于缺少数据的面(年份),我仍然无法均匀地调整每个条的宽度。

如何调整此选项并将标签分别添加到X轴(对于每个带有年份的条形标签,而不是单独的颜色键)

代码语言:javascript
运行
复制
p <- ggplot(data = df, aes(x = factor(X), y = Percentage,
                               fill = factor(Year)))
p + geom_bar(stat = "identity",
             position = position_dodge(0.9)) +
  facet_grid(. ~ X, scales="free") 

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-26 05:09:00

通过将X替换为Year

代码语言:javascript
运行
复制
df %>%
ggplot( aes(x = factor(Year), y = Percentage,
                      fill = factor(Year))) +
  geom_bar(stat = "identity", position = position_dodge(0.9)) +
  facet_grid(. ~ X, scales = "free_x", space = "free_x")

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68932043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档