【发布时间】:2017-12-01 15:17:55
【问题描述】:
所以我有两个直方图,我可以一次做一个。使用以下代码的结果给出了六个不同直方图的 2 行 x 3 列平面图:
ggplot(data) +
aes(x=values) +
geom_histogram(binwidth=2, fill='blue', alpha=0.3, color="black", aes(y=(..count..)*100/(sum(..count..)/6))) +
facet_wrap(~ model_f, ncol = 3)
这里aes(y...) 只给出百分比而不是计数。
如前所述,我有这 6 个 facet_wrap 图中的两个,我现在将它们结合起来以显示一个比另一个偏移更多。 另外,数据大小不一样,所以我有一个:
# A tibble: 5,988 x 5
values ID structure model model_f
<dbl> <chr> <chr> <chr> <fctr>
1 6 1 bone qua Model I
2 7 1 bone liu Model II
3 20 1 bone dav Model III
4 3 1 bone ema Model IV
5 3 1 bone tho Model V
6 4 1 bone ranc Model VI
7 3 2 bone qua Model I
8 5 2 bone liu Model II
9 18 2 bone dav Model III
10 2 2 bone ema Model IV
# ... with 5,978 more rows
还有一个:
# A tibble: 954 x 5
values ID structure model model_f
<dbl> <chr> <chr> <chr> <fctr>
1 9 01 bone qua Model I
2 8 01 bone liu Model II
3 22 01 bone dav Model III
4 6 01 bone ema Model IV
5 5 01 bone tho Model V
6 9 01 bone ran Model VI
7 12 02 bone qua Model I
8 11 02 bone liu Model II
9 24 02 bone dav Model III
10 9 02 bone ema Model IV
# ... with 944 more rows
所以它们的大小不同,ID 也不同(数据不相关),但我仍然希望合并直方图以查看数据之间的差异。
我认为这可能会奏效:
ggplot() +
geom_histogram(data=data1, aes(x=values), binwidth=1, fill='blue', alpha=0.3, color="black", aes(y=(..count..)*100/(sum(..count..)/6))) +
geom_histogram(data=data2, aes(x=values), binwidth=1, fill='blue', alpha=0.3, color="black", aes(y=(..count..)*100/(sum(..count..)/6))) +
facet_wrap(~ model_f, ncol = 3)
然而,这并没有多大作用。
所以现在我被困住了。这是可能的,还是......?
【问题讨论】:
-
您是否考虑过堆叠数据集,然后使用两个变量进行
facet_wrap? -
但是我不会遇到两个变量的问题吗?数据集之间的唯一区别是 ID。但是对于每个数据集它们是不同的,范围从一个数据集的 1-~1000 到另一个数据集的 1-~160。
-
出于策划的目的,我不这么认为。我认为你根本不依赖 ID 来进行情节是吗?
-
我不知道。但是还有哪个变量可以区分 facet_wrap 中的两个数据集?或者也许我只是不知道它是如何与两个变量一起工作的。
-
你可以试试
rbind(cbind(data1, df = "1"), cbind(data2, df = "2"))。那么你的另一个方面是df