0

我正在遵循此https://stackoverflow.com/a/3542115/3483997方法,以便将 2 个直方图(具有不同的总体)集成在同一数据框中。

ROS_SPITFIRE <- data.frame(length = rnorm(100, 0.76406353, 0.500970292)) ROS_FARSITE <- data.frame(length = rnorm(398, 3.48366834170854,2.19050069588744))

#Now, combine your two dataframes into one. First make a new column in each. ROS_SPITFIRE$veg <- 'ROS_SPITFIRE' ROS_FARSITE$veg <- 'ROS_FARSITE'

#and combine into your new data frame vegLengths vegLengths <- rbind(ROS_SPITFIRE, ROS_FARSITE)

#now make your lovely plot ggplot(vegLengths, aes(length, fill = veg)) + geom_density(alpha = 0.3) ggplot(vegLengths, aes(length, fill = veg)) + geom_density(alpha = 0.3)

ggplot(vegLengths, aes(length, fill = veg)) + geom_histogram(alpha = 0.5, aes(y = ..density..), position = 'identity') ggplot = ggplot + xlim((0,15))

当我在每个数据框中创建新列时,我的问题出现了。它产生负值,因此我的最终分布图在 X 轴上具有负值。有谁知道如何修理它?

谢谢

4

1 回答 1

0

如果您需要坚持使用特定mean的 s 和sds 但排除任何负值,您可以过滤数据集,例如ROS_SPITFIRE[ROS_SPITFIRE$length>0,]或对图表进行限制,例如xlim(0,12)

如果您可以修改分布,则可以选择不会导致负值的分布或值。@Dave 和 @jbaum 提供指导,例如使用sample(seq(.1, 1, by = .1), 100, replace = T)或评估其他分发选项以沿着这条路线前进。

您还可以通过直接进入图表并提供限制来减少一些步骤:

ggplot(ROS_SPITFIRE, aes(length, y = ..density..,fill="spitfire")) + 
geom_histogram(alpha = 0.5,  position = 'identity')+ 
geom_histogram(data=ROS_FARSITE, aes(fill="farsite"), 
                 alpha = 0.5, position = 'identity')+
xlim(0,12)

在此处输入图像描述

于 2014-04-01T14:45:05.250 回答