2016-05-14 11 views
2

Ich verwende derzeit stat_ecdf, um mein kumulatives Häufigkeitsdiagramm darzustellen. HierWie plotten reverse (ergänzende) ecdf mit ggplot?

ist der Code, den ich verwendet

cumu_plot <- ggplot(house_total_year, aes(download_speed, colour = ISP)) + 
       stat_ecdf(size=1) 

Jedoch habe ich die ECDF wollen umgekehrt (complementary ECDF) werden. Irgendwelche Ideen für den einfachsten Weg, dies zu tun?

Prost!

+0

nicht Einstellung 'stat_ecdf (size = 1, Mapping = aes (-download_speed))' Arbeit? – chappers

+0

Es funktioniert nicht so, wie ich will :(. Was ich will ist der Wert der y-Achse zu sein (1-y) anstelle von y, so können wir bei der Betrachtung der Handlung die Information über '... % der Stichprobe hat ... oder mehr "statt" ....% der Stichprobe hat ... oder weniger " –

Antwort

0

Da wie scheint, gibt es keinen einfacheren Weg, um die inverse ECDF plotten, hier ist das, was ich habe, falls jemand getan wird nach einer Lösung gesucht:

  1. extrahieren die Informationen aus ECDF Funktion und speichern sie in die neue Spalte

    house_total_year_ecdf <- ddply(house_total_year, c("ISP"), mutate, 
         ecdf = ecdf(download_speed)(unique(download_speed))*length(download_speed)) 
    
    #transforming the scale to (0,1) 
    house_total_year_ecdf_2 <- ddply(house_total_year_ecdf, "ISP", mutate, 
         ecdf =scale(ecdf,center=min(ecdf),scale=diff(range(ecdf)))) 
    
  2. Plot der graph unter Verwendung von geom_step und mit y = 1-ECDF

    ggplot(house_total_year_ecdf_2, aes(download_speed,1-ecdf, colour = ISP)) + 
    geom_step() 
    

enter image description here

7

Von der Hilfeseite von stat_ecdf:

Berechnete Variablen

x

x in Daten

y

kumulative Dichte entspricht x

So funktioniert das:

p <- ggplot(dataframe_with_column_Z, aes(x=Z)) 

p + geom_line(aes(y = 1 - ..y..), stat='ecdf') 

Output