如何在 R 中使用步骤(大小不同)自定义 y 轴标签,通过更改轴的比例来放大

问题描述 投票:0回答:1

我有一个问题。由于我对 R 和数据可视化非常陌生,我希望我能正确提问。

我正在尝试可视化 0 - 100% 的简单条形图,但放大到 60 - 100% 之间的部分是最有趣的。 我尝试了一些方法来改变 Y 轴的步长,如下所示:

0、20、40、60、70、80、90、100.

目标是查看从 0 - 100% 的整个图表,但只是为了可视化“按年份拒绝”之间的差异(在图像中为红色)。因为差异只有 4%。

我确实尝试使用scale_y_continuous来改变休息时间,它确实改变了,但不是我正在寻找的方式: 结果是 R 只是按照我的要求显示标签,但没有更改轴的比例。

它给了我这个: 在此输入图片描述

我想要实现的是: 在此输入图片描述

我也尝试过使用scale_y_break(c(0, 60)),但随后 0 - 60% 消失了。

虚拟数据:

状态计数 % 年

拒绝 1049 14% 2024 已批准 6621 86% 2024 拒绝 1963 18% 2023 已批准 8781 82% 2023

有没有办法通过更改比例来自定义 Y 轴标签?

非常感谢这位新手。

r ggplot2 scale axis-labels
1个回答
0
投票

我就是这样做的:

library(tidyverse)

df <- tribble(
  ~status, ~count, ~pct, ~year,
  "Rejected", 1049, 0.14, 2024,
  "Approved", 6621, 0.86, 2024, 
  "Rejected", 1963, 0.18, 2023,
  "Approved", 8781, 0.82, 2023
) %>% 
  mutate(
    year = factor(year, levels = c(2023, 2024)),
    status = factor(status, levels = c("Rejected", "Approved"))
  )

df %>%  
  ggplot(aes(y = year, x = pct, fill = status)) +
  geom_bar(stat = "identity", orientation = "y", position = position_stack(reverse = FALSE))+
  scale_x_continuous(
    breaks = c(seq(0, .5, 0.1), seq(0.6, 1, .2)),
    labels = scales::label_percent(accuracy = 1, scale = 100)
    )+
  scale_fill_manual(values = c("Approved" = "#016599", "Rejected" = "#990001"))
© www.soinside.com 2019 - 2024. All rights reserved.