2016-05-16 21 views
0

Ich brauche Hilfe mit einem Graphen in R mit ggplot2, weil nach mehreren Versuchen, weiß ich nicht, wie zu tun ist. Ich habe folgenden Datenrahmen:Grafik in R/ggplot2 mit mehreren Variablen

df <- data.frame(
    TITLE = c("GRADUATE IN TITLE 1", "GRADUATE IN TITLE 2", "GRADUATE IN TITLE 3", 
     "GRADUATE IN TITLE 4", "GRADUATE IN TITLE 5"), 
    X2011 = c(1, 2, 3, 4, 5), 
    X2012 = c(3, 4, 5, 1, 2), 
    X2013 = c(1, 2, 5, 3, 4), 
    X2014 = c(1, 3, 4, 2, 5), 
    X2015 = c(5, 1, 2, 4, 3) 
) 

Was ich will, ist ein Diagramm, dass alle die „TITLE“ Werte in der Y-Achse hat, jedes der Jahre (2011, 2012, 2013 ...) in dem X-Achse, und für jede Zeile, die einem "TITLE" entspricht, zeichnen Sie eine horizontale Linie, so dass der Kreuzungspunkt jedes Jahres die Position ist, die dem Wert dieser Jahresspalte für diesen "TITEL" entspricht, also alle Linien im Diagramm gehe nach oben oder unten, abhängig von den Werten, die dieser Spalte entsprechen.

Antwort

3

ggplot Ich mag es, wenn Ihre Daten "sauber" sind, dh jede Zeile sollte einen Punkt darstellen, der geplottet werden soll. Eine einfache Möglichkeit, Ihre Daten in ein plotterfreundlicheres Format zu konvertieren, besteht darin, sie mit dem reshape2-Paket zu schmelzen.

library(ggplot2) 
ggplot(reshape2::melt(df), aes(variable, TITLE, group=value)) + geom_line() 

Dann können Sie die Standardlinie geom verwenden und groups= die Werte in den verschiedenen Kategorien zu verbinden.

Dies erzeugt

enter image description here

+0

Es funktioniert perfekt und genau das, was ich suchte, vielen Dank für die Hilfe! – germaaan

Verwandte Themen