我的问题与
非常相似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 )
是否可以相对于每个组的大小?
谢谢!
答案 0 :(得分:1)
对于那些仍然感兴趣的人。答案很简单。首先使用相对组大小创建一个单独的列,然后在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 )