gpt4 book ai didi

R ggplot2 堆叠条形图按列值归一化

转载 作者:行者123 更新时间:2023-12-01 13:43:01 25 4
gpt4 key购买 nike

我有以下数据框 t :

name type total
a 1 20
a 1 20
a 3 20
a 2 20
a 3 20
b 1 25
b 2 25
c 5 35
c 5 35
c 6 35
c 1 35

total对于具有相同 name 的所有条目都是相同的.我想用 type 绘制堆叠条形图在 x axis 上和 count of nametotal 归一化在 y axis 上.我通过以下方式绘制了非标准化图:

ggplot(t, aes(type,fill= name))+geom_bar() + geom_bar(position="fill")

如何绘制标准化条形图?即 type = 1 y 轴值为 2/20对于 a1/25对于 b1/35对于 c ...

我的尝试没有成功:

ggplot(t, aes(type, ..count../t$total[1],fill= name))+geom_bar() + geom_bar(position="fill")

最佳答案

读入数据

d <- read.table(header = TRUE, text =
'name type total
a 1 20
a 1 20
a 3 20
a 2 20
a 3 20
b 1 25
b 2 25
c 5 35
c 5 35
c 6 35
c 1 35')

将它称为 t 是个坏主意,因为那是转置函数的名称。

计算分数

library(dplyr)
d2 <- d %>%
group_by(name, type) %>%
summarize(frac = n() / first(total))

使用 dplyr 包更容易做到这一点。

制作情节

ggplot(d2, aes(type, frac, fill = name)) +
geom_bar(stat = 'identity')

结果

enter image description here

关于R ggplot2 堆叠条形图按列值归一化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38327511/

25 4 0
文章推荐: java - 为什么线程不切换?
文章推荐: java - android 在 eclipse 中构建得很好,但在 jenkins ant 上则不行
文章推荐: java - 序列化 ArrayList 二进制文件的数据结构