2016-03-23 6 views
0

ich mit dem folgenden Datenrahmen ein einfaches dotplot (lattice Paket) in R zu erstellen versuchen:zwei Gruppenvariablen in einem Dotplot

df<-data.frame(Sediment=c("Algae", "Algae", "Algae", "Bare", "Bare", "Bare", "Dredged", "Dredged", "Dredged"), Rep=c(1,2,3,1,2,3,1,2,3), LeafElongation=c(0, 20.6, 0, 29.1, 41.4, 45.9, 54.1, 22.3, 26.7)) 

Ich mag die Daten durch Sedimentmarkierungsfarben-Gruppe verwenden und . Marker Formen Gruppendaten von Rep das ist mein Code so weit:

dotplot(LeafElongation~Sediment, data=df, groups=Sediment, method="jitter", col = 
     c("darkolivegreen", "darkgoldenrod3", "sienna"), main= "Leaf Elongation: Ramet Plots", ylab="Average total plant leaf elongation (cm)", cex.main=1.7, cex.lab=1.2, cex.axis=1.7) 

ich habe meine Daten durch Sediment erfolgreich gruppiert und dies ist in der Regel, wie ich die Handlung möchte erscheinen, aber ich möchte ein Baby haben verschiedene Formen für jeden Rep (Kreise für 1, Diamanten für 2, t Riangles für 3). Ich möchte auch, dass die Formen gefüllt und nicht geöffnet werden. Außerdem glaube ich, dass die Methode jitter überlappende Punkte trennen soll, so dass beide sichtbar sind, aber in diesem Fall scheint es nicht zu funktionieren.

Antwort

0

Das pch Argument ist, was Sie suchen. Fügen Sie es einfach Ihrem Code hinzu und füttern Sie es direkt mit df$Rep. Sie können das Argument groups jetzt überflüssig entfernen.

dotplot(LeafElongation~Sediment, data=df, 
    method="jitter", 
    col = c("darkolivegreen", "darkgoldenrod3", "sienna"), 
    main= "Leaf Elongation: Ramet Plots", 
    ylab="Average total plant leaf elongation (cm)", 
    cex.main=1.7, cex.lab=1.2, cex.axis=1.7, 
    pch = df$Rep) 
0

Sie können dies als zusätzliches Argument zu Ihrem Punktdiagramm hinzufügen, um es nach Form zu gruppieren. pch = c(16, 17, 18)[df$Rep]

Sie können 16 auslagern, 17, 18 für alle anderen Formen wie pro diesem Handbuch: http://www.endmemo.com/program/R/pchsymbols.php

+0

Ich fügte dieses Argument direkt vor dem Argument Farbe und es hat meine Punkte ausgefüllt, aber immer noch nicht ihre Form zu ändern. Muss ich auch "Rep" am Anfang des Codes irgendwo hinzufügen? – user507

+0

Egal, ich habe das Problem gelöst. Sie müssen das Argument "groups" entfernen und ein Farbargument für Sediment auf die von Ihnen vorgeschlagene Weise erstellen. – user507