【发布时间】:2021-07-20 12:02:03
【问题描述】:
我的目标是创建一个可视化三个变量百分比的条形图;但是,我当前的图表以一种相当混乱的方式这样做。 一点上下文:我的每个变量都可以有两个可能的值之一:
- 参考:null或明显
- 品种:SING或GB
- 注册:S1A或S1B
总的来说,数据框看起来像这样(还有几千行):
Reference Register Variety
1 null S1A SING
2 null S1A SING
3 null S1A SING
4 null S1A SING
5 null S1A SING
6 null S1A SING
我使用以下代码创建了下面的条形图:
data_raw <- read.csv("INPUT.csv", TRUE, ",")
data_2 <- data_raw %>%
count(Reference, Variety, Register) %>%
mutate(pct = n / sum(n),
pct_label = scales::percent(pct))
ggplot(data_2, aes(x= Reference, fill = Variety, y = pct)) +
geom_col() +
geom_text(aes(label = paste(pct_label, n, sep = "\n")),
lineheight = 0.8,
position = position_stack(vjust = 0.5)) +
scale_y_continuous(labels = scales::percent)
第三个变量,Register,在一个单色框中用两个单独的值表示,例如 GB 品种的 684/20.22% (S1B) 和 931/27.52% (S1A) .虽然我可以从我的数据中推断出这两个值中的哪一个代表 S1A 或 S1B,但我也需要从条形图中看出这一点。例如,是否可以在“684/20.22%”中添加一个标签,表明它是 S1B 值?
另一个明显的问题是 x 值“null”的数据包含非常低的百分比,使其难以阅读。我不确定处理这个问题的最佳方法是什么。也许完全取消数字并仅依赖颜色是有意义的。
对于我的问题的任何建议或解决方案,我将不胜感激。我还是个初学者,希望能更好地使用 R 进行数据分析。
【问题讨论】: