我有一个问题。由于我对 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 轴标签?
非常感谢这位新手。
我就是这样做的:
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"))