如何使用具有不同列长度的数据建立累积密度图,ggplot2?

时间:2017-10-26 19:25:21

标签: r ggplot2

我正在尝试使用具有不同列长度的数据为项目构建累积密度图。我想能够以图形方式显示不同样本量的用户之间的用水情况。沿着x轴的人口百分比(0% - 100%)和沿着y轴的水使用(加仑)的东西。

所以我想这样......

WaterUse <- data.frame(A = c(S1DataCP$atotwu, S2DataCP$atotwu, S3DataCP$atotwu, S4DataCP$atotwu) )

ggplot(WaterUse, aes(x = ?, color = c("1", "2", "3", "4"))) + stat_ecdf()

数据框是根据四个不同数据集的查询构建的,这些数据集收集了特定人群的用水量(atotwu)。数据框中的列长度不同,没有给定的顺序。

1 个答案:

答案 0 :(得分:1)

让我们使用名为atotwu

的列创建不同长度的样本数据,模拟数据框架的结构
set.seed(10)
S1DataCP <- cbind.data.frame(rnorm(50))
S2DataCP <- cbind.data.frame(rnorm(45))
S3DataCP <- cbind.data.frame(rnorm(55))
S4DataCP <- cbind.data.frame(rnorm(60))
colnames(S1DataCP) <- colnames(S2DataCP) <- colnames(S3DataCP) <- colnames(S4DataCP) <- "atotwu"

这里我只是列绑定对应于该站点的标识符:

S1DataCP_df <- cbind(1, S1DataCP$atotwu)
S2DataCP_df <- cbind(2, S2DataCP$atotwu)
S3DataCP_df <- cbind(3, S3DataCP$atotwu)
S4DataCP_df <- cbind(4, S4DataCP$atotwu)

由于ggplot2以长格式获取数据,因此我们对各个数据帧进行行绑定:

WaterUse <- rbind.data.frame(S1DataCP_df, S2DataCP_df, S3DataCP_df, S4DataCP_df)
colnames(WaterUse) <- c("Site", "atotwu")

最后绘制stat_ecdf

ggplot(WaterUse, aes(x=atotwu, colour=factor(Site))) + stat_ecdf() + labs(colour="Site")

enter image description here