【发布时间】:2013-04-26 16:39:08
【问题描述】:
我的问题类似于 Normalizing y-axis in histograms in R ggplot to proportion 但我想补充一点。
一般来说,我在 2x3 刻面设计中有 6 个直方图,我想分别对它们中的每一个进行归一化。我将尝试在这里制作一个示例数据集以提供一个想法:
hvalues=c(3,1,3,2,2,5,1,1,12,1,4,3)
season=c("fall","fall","fall","fall","winter","winter","winter","winter","summer","summer","summer","summer")
year=c("year 1","year 1","year 2","year 2","year 1","year 1","year 2","year 2","year 1","year 1","year 2","year 2")
group=c("fall year 1","fall year 1","fall year 2","fall year 2","winter year 1","winter year 1","winter year 2","winter year 2","summer year 1","summer year 1","summer year 2","summer year 2")
all=data.frame(hvalues,season,year)
使用
ggplot(all, aes(x=hvalues,group=group)) +
geom_histogram(aes(y=..count../sum(..count..))) +
facet_grid(season ~ year)
给出整体比例(即结合所有方面)。我希望将每个组方面标准化为 1。hvalues 在我的实际数据中不是整数 - 它们是数字。
我是使用 R 的新手,非常感谢一些帮助。提前致谢!
【问题讨论】:
-
试试
y = ..density..。 -
all必须是一个数据框。试试all <- as.data.frame(cbind(hvalues,season,year))。 -
@JT85 我同意,但请不要鼓励使用
as.data.frame(cbind(...))代替data.frame(...)。 -
查看
?stat_bin并尝试那里的选项。我想..ncount..可能就是你要找的东西。 -
叹息。确切地。在每个方面缩放到 1 正是你所说的你想要的。我现在继续。
标签: r ggplot2 normalization histogram facet