gpt4 book ai didi

r - ggplot中条形图上的分类值计数?

转载 作者:行者123 更新时间:2023-12-04 12:14:14 24 4
gpt4 key购买 nike

有点像 R 新手,所以如果这最终成为一个令人尴尬的简单修复,请原谅我。我正在寻找一种方法来让我的条形图显示 ggplot2 中分类值的计数。

我整理了一些虚构的样本数据:

ID  Age SizeOfTumor RemovalSurgery
1 <30 Small No
2 <30 Large Yes
3 <30 Large No
4 <30 Small No
5 <30 Small No
6 <30 Large Yes
7 30-60 Large No
8 30-60 Large Yes
9 30-60 Large Yes
10 30-60 Small Yes
11 30-60 Small Yes
12 30-60 Small No
13 30-60 Large No
14 30-60 Small No
15 >60 Large Yes
16 >60 Large Yes
17 >60 Large Yes
18 >60 Small Yes
19 >60 Small No
20 >60 Large Yes

并使用以下代码绘制它:
library(ggplot2)

ggplot(df, aes(x = SizeOfTumor, fill = RemovalSurgery)) + geom_bar(position = "fill") + facet_grid(~Age)

哪个产生
a pretty standard barchart

我想要做的是能够将每个分类变量的数字添加到图表中,同时保留百分比刻度。
  • 我查了一些类似的问题,并尝试了几种不同的 geom_text 代码,但没有运气。
  • 我认为不同之处可能在于我没有 y 作为它自己的列,只是计数作为填充。

  • 任何意见,将不胜感激。我宁愿不必进入Photoshop并手动输入所有标签。

    最佳答案

    在这种情况下,我建议你自己做总结,而不是让 ggplot为你而做。

    library(ggplot2)
    library(scales)
    library(dplyr)

    plot_data <- df %>%
    count(SizeOfTumor, Age, RemovalSurgery) %>%
    group_by(Age, SizeOfTumor) %>%
    mutate(percent = n/sum(n))


    ggplot(plot_data, aes(x = SizeOfTumor, y = percent, fill = RemovalSurgery)) +
    geom_col(position = "fill") +
    geom_label(aes(label = percent(percent)), position = "fill", color = "white", vjust = 1, show.legend = FALSE) +
    scale_y_continuous(labels = percent) +
    facet_grid(~Age)

    enter image description here

    我还在 geom_label 中添加了一些 y_axis 和文本的格式。与 percent来自 scales包。

    关于r - ggplot中条形图上的分类值计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41128877/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com