抱歉新手R问题......
我有一个包含单个变量测量值的data.frame。这些测量结果将根据被测物体是A型还是B型而分布不同;也就是说,你可以想象我的列名是:measurement,type label(A或B)。我想分别绘制A和B的测量直方图,并将两个直方图放在同一个图中,每个直方图标准化为单位面积(这是因为我希望A和B的比例显着不同)。按单位面积,我的意思是A和B各有单位面积,而不是A + B有单位面积。基本上,我想要像geom_density这样的东西,但是我不希望每个都有平滑的分布;我想要直方图条。不是交错的,而是一个在另一个上面绘制。没有堆叠,虽然知道如何做也会很有趣。 (这个图的目的是探索分布形状的差异,这些差异表明A和B之间存在可以用来区分它们的数量差异。)这就是全部。两个或多个直方图 - 不是平滑的密度图 - 在同一图中,每个都标准化为单位面积。谢谢!
答案 0 :(得分:3)
这样的东西?
# generate example
set.seed(1)
df <- data.frame(Type=c(rep("A",1000),rep("B",4000)),
Value=c(rnorm(1000,mean=25,sd=10),rchisq(4000,15)))
# you start here...
library(ggplot2)
ggplot(df, aes(x=Value))+
geom_histogram(aes(y=..density..,fill=Type),color="grey80")+
facet_grid(Type~.)
请注意,B
类型的样本数量是其中的4倍。
您还可以使用scales="free_y"
调用中的facet_grid(...)
将y轴刻度设置为浮动。