ggplot - 从百分位数绘制CDF

时间:2018-01-19 17:14:14

标签: r ggplot2

我从一个来自数据仓库的非常大的数据集中获得了一个数据框,其中包含已处理的CDF数据点(百分位数)

text <- "
name,var,value
a,0.01,0.27
b,0.01,0.24
c,0.01,0.25
a,0.05,0.48
b,0.05,0.43
c,0.05,0.48
a,0.1,0.62
b,0.1,0.57
c,0.1,0.64
a,0.25,0.93
b,0.25,0.88
c,0.25,0.99
a,0.5,1.41
b,0.5,1.39
c,0.5,1.52
a,0.75,2.12
b,0.75,2.08
c,0.75,2.28
a,0.9,3.11
b,0.9,3
c,0.9,3.29
a,0.95,3.92
b,0.95,3.75
c,0.95,4.09
a,0.99,5.9
b,0.99,5.65
c,0.99,6.04
"
df <- read.table(textConnection(text), sep=",", header = T, stringsAsFactors = F)

var0.01, 0.05, 0.10值中的每一个都指第1百分位数,第5百分位数,第10百分位数等。我需要创建一个CDF&#39;喜欢&#39;在单个图中使用此数据绘制三个name s a,b,c。我怎么做到的。

更新

此处添加了使用答案below的绘图 - 然而,这并未按预期创建一条线(最好是平滑线)。 enter image description here

1 个答案:

答案 0 :(得分:0)

有CDF图的内置函数(https://stat.ethz.ch/R-manual/R-devel/library/stats/html/ecdf.html),但我发现ggplot看起来更漂亮,更直观

require(ggplot2)
ggplot(df, aes(x = var, y = value, color = name)) + geom_path()

您可以添加许多自定义项,但我只提一个:将+ geom_point()添加到ggplot语句以标记测量间隔。如果你有其他的风格偏好,回复和我(或更有资格的人)会尽力