【问题标题】:ggplot - plotting CDF from percentilesggplot - 从百分位数绘制 CDF
【发布时间】:2018-01-19 17:14:14
【问题描述】:

我得到一个数据框,其中包含来自如下数据仓库的非常大数据集的已处理 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)

每个var 值,如0.01, 0.05, 0.10 等,指的是第1 个百分位、第5 个百分位、第10 个百分位等。我需要使用此数据为单个图中的三个names a,b,c 创建一个 CDF 'like' 图。我怎么知道的。

更新

在此处添加使用答案below 的绘图 - 但是,这不会按预期创建一条线(最好是平滑线)。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    有用于 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()
    

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

    【讨论】:

    • 我在此添加了geom_point()。这给出了要点,但是我无法获得加入它们的线。我怎样才能得到那部分最好是一条平滑的线?我的结果图包含在更新后的原始问题中。
    • 通过将 varchr 更改为 numeric 来实现此功能!!
    猜你喜欢
    • 2017-01-19
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 2013-02-10
    相关资源
    最近更新 更多