gpt4 book ai didi

R- 根据因子水平拆分直方图

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

这是我的数据:

type<-rep(c(0,1),100) 
diff<-rnorm(100)
data<-data.frame(type,diff)

如果我想绘制 diff 的直方图,我这样做:
hist(data$diff)

但是我想根据 type 来分割我的直方图.我可以这样做:
par(mfrow=c(1,2))
hist(data$diff[data$type==0])
hist(data$diff[data$type==1])

但这给我的是两个不同的直方图并排。我想要做的是用 diff 生成单个直方图的 0在一侧和 diff1在另一边。像这样的东西,条形是连续的,中间没有中断或边界。这大概意味着对于每个因素,轴将分为两个。
enter image description here

最佳答案

您可以使用 ggplot2包裹:

library(ggplot2)

ggplot(data,aes(x=diff))+geom_histogram()+facet_grid(~type)+theme_bw()

enter image description here

您还可以通过“躲避”它们将它们放在同一个图上:
ggplot(data,aes(x=diff,group=type,fill=type))+
geom_histogram(position="dodge",binwidth=0.25)+theme_bw()

enter image description here

如果你想让它们重叠,位置必须是 position="identity"
ggplot(data,aes(x=diff,group=type,fill=type))+
geom_histogram(position="identity",alpha=0.5,binwidth=0.25)+theme_bw()

enter image description here

如果你想让它们看起来像第一个但没有边框,你必须稍微修改一下:
data$diff[data$type==1] <- data$diff[data$type==1] + 6

ggplot(data,aes(x=diff,group=type,fill=type))+
geom_histogram(position="identity",alpha=0.5,binwidth=0.25)+theme_bw()+
scale_x_continuous(breaks=c(-2:2,4:8),labels=c(-2:2,-2:2))

enter image description here

关于R- 根据因子水平拆分直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34044725/

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