r - 将 R ggplot 中密度图中的 y 轴归一化为按组比例

标签 r plot ggplot2

我的问题非常类似于

Normalizing y-axis in histograms in R ggplot to proportion by group

除了,我需要密度图,并且我希望将 y 轴作为每 1000 名患者的 x 计数之类的比率。

我有多组不同大小的数据,我希望每个比例都与其组大小有关,而不是总大小。

为了更清楚,假设我在一个数据框中有两组数据

示例数据:

dataA<-rnorm(10000,3,sd=2)
dataB<-rnorm(40000,5,sd=3)
bp_combi<-data.frame(dataset=c(rep('A',length(dataA)),rep('B',length(dataB))),
                     value=c(dataA,dataB))

我可以将分布相对于总大小绘制在一起,但不能相对于相对大小绘制。
combi_dens = ggplot(bp_combi, 
                    aes(x=value, 
                        number_of_cases=nrow(bp_combi),
                        y=(..count..)/number_of_cases*1000, fill=dataset)) +
               geom_density(bw = 1, alpha=0.4, size = 1.5 )

是否有可能相对于每个组的大小?

谢谢!

最佳答案

对于那些仍然感兴趣的人。答案相当简单。首先使用相对组大​​小创建一个单独的列,并在 ggplot 中使用该列。

unique_episodes = bp_combi %>% group_by(dataset) %>% count(dataset)
data2 = merge(x = bp_combi, y = unique_episodes, by = "dataset", all.x = TRUE)


combi_dens = ggplot(bp_combi, 
                    aes(x=value,,
                        y=(..count..)/n*1000, fill=dataset)) +
  geom_density(bw = 1, alpha=0.4, size = 1.5 )

关于r - 将 R ggplot 中密度图中的 y 轴归一化为按组比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45098389/

相关文章:

r - 从 R 中的 Plotly 导出 PNG 文件

r - Shiny:在模块或嵌套模块中使用 uiOutput?

涉及向量的表达式上的 R curve()

matlab - 在两个序列的匹配部分之间画线

r - 将 ggplot 图导出为 pdf : invalid font type 时出错

r - 在循环中创建 R Markdown block

r - R中的5维图

r - 如何从R中的箱形图中提取异常值

r - 如何在 ggplot 中向 geom_text() 添加字母数字和希腊字符?

r - 在 ggplot2 中打破 Y Axis