2017-01-21 9 views
0

Ich versuche, ein zwei Facetten Liniendiagramm als this example zu erstellen. Mein Problem besteht darin, Daten anzuordnen, um die gewünschte Variable auf der X-Achse anzuzeigen. Hier ist ein kleiner Datensatz, den ich verwenden möchte.Anordnen von Daten für zwei Facetten R-Linien-Plot

Study,Cat,Dim1,Dim2,Dim3,Dim4 
Study1,PK,-3.00,0.99,-0.86,0.46 
Study1,US,-4.67,0.76,1.01,0.45 
Study2,FL,-2.856,4.15,1.554,0.765 
Study2,FL,-8.668,5.907,3.795,4.754 

ich versuchte, den folgenden Code zu verwenden Liniendiagramm von diesem Datenrahmen zu ziehen.

plot1 <- ggplot(data=dims, aes(x=Cat, y=Dim1, group=Study)) + geom_line()+ geom_point() + facet_wrap(~Study) 

Wie klar ist, kann ich nur eine Wertspalte verwenden, um Linien zu zeichnen. Ich möchte Dim1, Dim2, Dim3, Dim4 auf der x-Achse setzen, was ich bei dieser Anordnung von Daten nicht tun kann. [versucht c (Dim1, Dim2, Dim3, Dim4) ohne Glück] Wahrscheinlich ist die Lösung, die Tabelle zu transponieren, aber dann kann ich nicht kategorisieren für Facette (Studie in der obigen Tabelle) und Farbe (Cat in obiger Tabelle. Irgendwelche Ideen wie um dieses Problem zu lösen?

Antwort

0

die Lösung war ganz einfach. Nur ein bisschen und die neu arrangierten Daten sehen wie folgt zu denken hatte.

Study,Cat,Dim,Value 
Study1,PK,Dim1,-3 
Study1,PK,Dim2,0.99 
Study1,PK,Dim3,-0.86 
Study1,PK,Dim4,0.46 
Study1,US,Dim1,-4.67 
Study1,US,Dim2,0.76 
Study1,US,Dim3,1.01 
Study1,US,Dim4,0.45 
Study2,FL,Dim1,-2.856 
Study2,FL,Dim2,4.15 
Study2,FL,Dim3,1.554 
Study2,FL,Dim4,0.765 
Study2,FL,Dim1,-8.668 
Study2,FL,Dim2,5.907 
Study2,FL,Dim3,3.795 
Study2,FL,Dim4,4.754 

Danach R erzeugte Wunsch Ergebnis mit diesem Code.

plot1 <- ggplot(data=dims, aes(x=Dim, y=Value, colour=Cat, group=Cat)) + geom_line()+ geom_point() + facet_wrap(~Study) 
+0

dies programmatisch Verwenden Sie dazu 'sammeln (dat, Dim, Wert, -Studie, -Cat)'. – r2evans

1

Sie können dies versuchen:

library(tidyr) 
library(dplyr) 
gather(dims, variable, value, -Study, -Cat) %>% 
ggplot(aes(x=variable, y=value, group=Cat, col=Cat)) + 
    geom_point() + geom_line() + facet_wrap(~Study) 

enter image description here

Verwandte Themen