Как создать cdf для набора данных с большими числами - PullRequest
0 голосов
/ 18 января 2020

У меня есть набор данных с размерами файлов с 15146 записями со значениями от 0 до 536870912, хранящийся в наборе данных dt с двумя столбцами cov (номер строки) и sp (значение). Мне удалось создать гистограмму, используя

 h <- hist(dt$sp, breaks=c(0, 1024, 2048,4096, 8192, 16384, 32768, 65536,
131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432,
67108864, 134217728, 268435456, 536870912, 1073741824, 21467483648, 42934967296,
85869934592, 171739869184, 343479738368, 686959476736))

, как вы можете видеть, чтобы улучшить ось х, я создал разрывы, начиная с 1024 == 1 КБ. После того, как я напечатаю привет, у меня есть

  1. разрывы (мой определенный список точек останова)
  2. $ count (частота, связанная с бинами / перерывами)
  3. $ плотность
  4. $ mids. Et. один - бины, а другой - кумулятивные частоты.
    plot(mrdaj$bin, mrdaj$procent, log = "x", xaxt = "n") 
    Warning message:
    In xy.coords(x, y, xlabel, ylabel, log) :
    1 x value <= 0 omitted from logarithmic plot
    axis(side = 1, at = mrdaj$bin, labels = FALSE)
    text(x = mrdaj$bin, par("usr")[3], labels = mrdaj$bin, srt = 90, pos = 2, xpd = TRUE)
    

    этот код воспроизводит этот график. enter image description here

    Я пытался использовать ggplot вот так

    ggplot(dt, aes(sp)) + geom_density() + geom_histogram() 
    + scale_x_log10(breaks = c(0,1024, 2048,4096, 8192, 16384, 32768, 65536, 
    131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 
    67108864, 134217728, 268435456, 536870912, 1073741824, 21467483648, 42934967296,
     85869934592, 171739869184, 343479738368, 686959476736)))
    

    результат - такой график

    enter image description here

    Мне удается получить аналогичную графику 1 с лучшим масштабом, используя

    ggplot(mrdaj, aes(x=bin, y=procent))+geom_point()+scale_x_log10()
    

    , но я хочу нарисовать линию, соединяющую все точки:)

    enter image description here

    Нужно ли мне определять распределение (возможно, это нормально и использовать параметры для добавления на этот график, или я могу сказать, используя данные (необработанные данные или частоты), создать график cdf и добавить.

    Я никогда не использовал это большое значение данных. Как я могу добавить / создать cdf и как добавить к этой диаграмме. Как вы можете видеть, я использую log как масштаб, есть лучший способ создать этот график. Thx

...