2016-05-24 6 views
1

Ich habe Probleme beim Plotten Häufigkeit einer Variablen nach Gruppe im Laufe der Zeit. Insbesondere möchte ich ein Liniendiagramm zeichnen, bei dem die x-Achse der Monat und das Jahr ist und die y-Achse die Häufigkeit der Werte für jeden Monat und jedes Jahr darstellt und jede Gruppe durch eine Farbe dargestellt wird. Dies ist, was mein Code wie folgt aussieht:Plot mehrere Frequenzen im Laufe der Zeit mit ggplot2

library(reshape2) 
library(ggplot2 
r_treat<-time[,c(4,10)] 
risk_treat <- melt(r_treat, id.vars="Risk_Class", variable.name="administered_date") 

ggplot(data=risk_treat, aes(x=value, y=value, group = Risk_Class, colour = Risk_Class)) + geom_line() + geom_point(size=4, shape=21, fill="white") 

Frequency by group over time

Dies ist die dput(risk_treat) Ausgabe:

structure(list(Risk_Class = c("Medium", "Medium", "Medium", "Low", 
"Low", "Low", "Low", "High", "High", "High", "Low", "Medium", 
"High", "High", "High", "High", "High", "High", "High", "High", 
"High", "Low", "Low", "Low", "Low", "Low", "Low", "Low", "Low", 
"Low", "Low", "Low", "Low", "Low", "Low", "Low", "Low", "Low", 
"Low", "Low", "Low", "Low", "Low", "Low", "Low", "Low", "Low", 
"Low", "High", "High", "High", "Medium", "Medium", "Medium", 
"Medium", "Medium", "Medium", "High", "High", "High", "High", 
"High", "High", "High", "High", "High", "High", "High", "High", 
"High", "High", "High", "High", "Medium", "Medium", "Medium", 
"High", "High", "High", "Medium", "Medium", "Medium", "Low", 
"Low", "Low", "Low", "Low", "Low", "Low", "High", "High", "High", 
"High", "High", "High", "High", "High", "High", "Low", "Low", 
"Low", "Low", "Low", "Low", "Low", "Low", "Medium", "High", "High", 
"Medium", "Medium", "Medium", "High", "High", "High", "Low", 
"Low", "Low", "Low", "High", "High", "High", "Low", "Low", "Low", 
"High", "High", "High", "High", "Low", "Low", "Low", "Low", "Low", 
"High", "High", "High", "High", "High", "Low", "Low", "Low", 
"Low", "Low", "Low", "Low", "Low", "Low", "Low", "Low", "Low", 
"Low", "High", "High", "High", "High", "High", "High", "High", 
"Medium", "High", "High", "High", "High", "High", "Medium", "Low", 
"Low", "Low", "Medium", "Medium", "Medium", "Low", "Low", "Low", 
"Low", "Low", "Low", "Low", "High", "Medium", "Medium", "Medium", 
"Medium", "Medium", "High", "Low", "Low", "Low", "Low", "Low", 
"Low", "Low", "Low", "Low", "Medium", "Medium", "Medium", "Medium", 
"Medium", "Low", "Low", "High", "High", "High", "High", "High", 
"High", "High", "High", "High", "High", "Low", "Low", "Low", 
"Low", "Low", "Low", "Low", "Low", "Low", "Low", "Medium", "Medium", 
"Medium", "Low", "Low", "Medium", "Medium", "Low", "Low", "Low", 
"Low", "Low", "Low", "Low", "Low", "Low", "Low", "Low", "High", 
"High", "High", "High", "High", "High", "Low", "Low", "High", 
"High", "High", "High", "High", "Low", "Low", "Low", "Low", "Low", 
"Low", "Low", "Low", "Low", "Low", "Low", "Medium", "Low", "Low", 
"Low", "Low", "Low", "Medium", "Medium", "Medium", "Low", "Low", 
"Low", "Low", "Low", "Low", "Low", "Low", "Low", "Low", "Low", 
"Low", "Low", "Low", "High", "High", "High", "High", "Low", "Low", 
"Low", "Medium", "Low", "Low", "Low", "Low", "Low", "Low"), administered_date = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "administered_date", class = "factor"), 
    value = structure(c(2015, 2015.41666666667, 2014.91666666667, 
    2014, 2014.5, 2012.41666666667, 2013.66666666667, 2015.75, 
    2011.75, 2014.83333333333, 2014.25, 2013, 2013.83333333333, 
    2013.83333333333, 2013.91666666667, 2013.91666666667, 2014.75, 
    2014.75, 2013.25, 2014.83333333333, 2015.5, 2010.66666666667, 
    2015.83333333333, 2014.66666666667, NA, 2011.58333333333, 
    2013.5, 2013.33333333333, 2015.83333333333, 2015.33333333333, 
    2015.75, 2014, 2015.33333333333, 2015.33333333333, 2013.66666666667, 
    2013.66666666667, 2015.83333333333, 2015.83333333333, 2013.16666666667, 
    2013.16666666667, 2015.41666666667, 2015.41666666667, 2012.58333333333, 
    2012.58333333333, 2014.83333333333, 2014.83333333333, 2015, 
    2015, 2013, 2015.5, 2015.75, 2012.25, 2020.66666666667, 2013.16666666667, 
    2009.58333333333, NA, 2012.25, 2014.08333333333, 2015.83333333333, 
    2014.08333333333, NA, 2014.08333333333, 2015.08333333333, 
    2014.91666666667, 2015.75, 2014.08333333333, 2015.41666666667, 
    2014.75, 2015.33333333333, 2014.58333333333, 2015, 2013, 
    2014.58333333333, 2014.25, 2013.25, 2015.75, 2013.75, 2014.75, 
    2013.5, 2015.83333333333, 2013, 2015.58333333333, 2014.33333333333, 
    2015.5, 2014.91666666667, 2013.58333333333, 2013.41666666667, 
    2014.16666666667, 2015.75, 2015, 2014.08333333333, 2015.41666666667, 
    2014.58333333333, 2012.91666666667, 2014.41666666667, 2015.16666666667, 
    2015.08333333333, 2013.83333333333, 2013.41666666667, 2013.91666666667, 
    2015.83333333333, 2015.75, 2013.33333333333, 2014.66666666667, 
    2014.25, 2014.91666666667, 2015.33333333333, 2014.33333333333, 
    2014.58333333333, 2014.33333333333, 2014.33333333333, 2014.25, 
    2015.83333333333, 2014.16666666667, 2014.75, 2012.41666666667, 
    2013.5, 2015.5, 2014.08333333333, 2013.25, 2015.5, 2013, 
    2012.66666666667, 2015.16666666667, 2012.33333333333, 2013.41666666667, 
    2015.16666666667, 2015.16666666667, 2015.25, 2011.66666666667, 
    2015.08333333333, 2014.41666666667, 2012.91666666667, 2014.66666666667, 
    2013.16666666667, 2015.16666666667, 2013.58333333333, 2014, 
    2011.75, 2015.75, 2015.58333333333, 2011.5, 2014.91666666667, 
    2013.25, 2013.33333333333, 2005.25, 2011, 2011.83333333333, 
    2013.16666666667, 2013.91666666667, 2015.66666666667, 2014.58333333333, 
    2015.75, 2015.5, 2012.75, 2014, 2012.91666666667, 2015.66666666667, 
    2015.58333333333, 2013.08333333333, 2012.5, 2012.5, 2011.83333333333, 
    2015.66666666667, 2014.41666666667, 2015.33333333333, 2015.66666666667, 
    2013.66666666667, 2015.5, 2015.5, 2013.5, 2012.25, 2013.58333333333, 
    2015, 2015.25, 2019.25, 2013.91666666667, 2014.66666666667, 
    2015.5, 2014.41666666667, 2013.08333333333, 2013.41666666667, 
    2014.83333333333, 2014.25, 2013.41666666667, 2013.5, 2014.83333333333, 
    2015.5, 2013.75, 2014.16666666667, 2014.66666666667, 2025.66666666667, 
    2012.41666666667, 2014.66666666667, 2014.66666666667, 2013.5, 
    2013.5, 2013.25, 2014, 2014.16666666667, 2012.83333333333, 
    2013.41666666667, 2015.58333333333, 2015.16666666667, 2014.5, 
    2014.5, 2013.5, 2015.16666666667, 2014.25, 2015.66666666667, 
    2013.25, 2014.33333333333, 2014.91666666667, 2013.16666666667, 
    2014.08333333333, 2015.08333333333, 2014.75, 2012.75, 2013.41666666667, 
    2012.08333333333, 2015.5, 2005.58333333333, 2014.75, 2013.25, 
    2015.83333333333, 2014, 2013.66666666667, 2015.5, 2012.25, 
    2012.33333333333, 2015.83333333333, 2013.75, 2012.66666666667, 
    2012.41666666667, 2014.83333333333, 2012.33333333333, 2013.58333333333, 
    2014.33333333333, 2015.5, 2013.83333333333, 2014.25, 2013.91666666667, 
    2014.16666666667, 2014.66666666667, 2013.66666666667, 2012.5, 
    2015.16666666667, 2009.5, 2015.83333333333, 2014, 2014.33333333333, 
    2014.41666666667, 2013.91666666667, 2013.33333333333, 2015.25, 
    NA, 2014.08333333333, 2013.58333333333, 2013.66666666667, 
    2011.91666666667, 2013, 2012, 2014.58333333333, 2014.16666666667, 
    2012.5, 2014.41666666667, 2014.58333333333, 2013, 2015.75, 
    2012.75, 2015.66666666667, 2014.41666666667, 2014.41666666667, 
    2014.75, 2015.5, 2015.5, 2014, 2014.75, 2015, 2012.41666666667, 
    2013.91666666667, 2013.5, 2015.5, 2013.25, 2013.58333333333, 
    2014.91666666667, 2011.33333333333, 2014.25, 2013.75, 2014, 
    2015.41666666667, 2013.58333333333, 2015.08333333333, 2015.25, 
    2014.33333333333, 2013.91666666667, 2013.25, 2015, 2014.5, 
    2015.16666666667, 2015.66666666667), class = "yearmon")), row.names = c(NA, 
-301L), .Names = c("Risk_Class", "administered_date", "value" 
), class = "data.frame") 
+1

Vielleicht ein Blasendiagramm, wo die Punkte größer, desto mehr Beobachtungen gibt es? – lmo

+0

@lmo Ich dachte darüber nach, aber ich denke, dass die einfachste Darstellung 3 separate Zeilen im Laufe der Zeit sein würde. –

+1

Können Sie einige Ihrer Daten veröffentlichen, versuchen Sie die Ausgabe von 'dput (risk_treat)'? –

Antwort

1

ich mit dem yearmon Format einige Probleme hatte, so wechselte ich Dinge über eine einfache Date Klasse.

## Change formatting to date class 
df$value <- yearmon(df$value) 
df$date <- as.Date(paste('01', df$value), format='%d %b %Y') 

## Get counts for each risk class on each date 
frequencies <- with(df, table(Risk_Class, date)) 
frequencies <- as.data.frame(frequecies) 
frequences$date <- as.Date(frequencies$date) 

## Plot frequencies by date 
ggplot(frequencies, aes(date, Freq, group = Risk_Class, colour = Risk_Class)) + 
     geom_line() + 
     geom_point(size = 4, shape = 21, fill = "white") 

enter image description here

, das so aussieht, was Sie nach, obwohl ich glaube, die Visualisierung verbessert werden könnte. Es ist ziemlich schwer, viel zu sehen.

Ich denke, damit können Sie die Daten besser sehen, aber das hängt ganz von Ihrem Zweck ab.

ggplot(data= frequencies, aes(x = date, y = Freq, group = Risk_Class, colour = Risk_Class)) + 
    geom_line() + 
    geom_point(size=4, shape=21, fill="white") + 
    scale_x_date(limits = c(as.Date('2010-01-01'), Sys.Date())) 

enter image description here

Verwandte Themen