Frage

alt text Hallo alle, Ich habe folgende geschmolzene Daten:

 X      variable       value    
1 StationA SAR11.cluster 0.001309292
2 StationB SAR11.cluster 0.002712237
3 StationC SAR11.cluster 0.002362708
4 StationD SAR11.cluster 0.002516751
5 StationE SAR11.cluster 0.004301075
6 StationF SAR11.cluster 0.0

.
.
.
etc.
etc.

Ich habe den folgenden Code ein Bubble der Daten Diagramm:

ggplot(foomelt, aes(x=foomelt$Station, y=variable, angle=45, size=(value))) + 
+geom_point() +  opts(theme_bw(), axis.text.x = theme_text(size=10, angle = 70)) 
+ scale_area()

Alles ist gut, außer, dass ich will die 0 (Null) Werte ignorieren und nur für die Skalierung der Punkte Werte zwischen alle verwenden, die Reibe sind als Nullen und der Maximalwert. Ich will nicht die Null-Werte Zeilen aus den Daten löschen, da um einen Punkt, den ich alle Stationen und Variablen enthalten sein will zu beweisen, und die mit dem Nullwert leer gelassen zu haben.

ich es geschafft, diese zu verwenden, um die Null-Werte zu ignorieren, aber Skalierung funktioniert nicht:

   ggplot(foomelt, aes(x=foomelt$Station, y=variable, angle=45, size=(value>0))) +
    + geom_point() +  opts(theme_bw(), axis.text.x = theme_text(size=10, angle = 70)) 
    + scale_area("Ratio") + scale_size_identity()

Jede Hilfe würde sehr geschätzt werden.

War es hilfreich?

Lösung

Ich bin nicht sicher, ob dies ist, was Sie suchen, aber ein Ansatz, um die Null-Werte zu ignorieren, während die Punkte Plotten ist Ihre geom_point () Anweisung

ändern
geom_point(subset = .(value > 0))

Diese Linie verläuft nur die Nicht-Null-Werte in dem Datenrahmen aufgetragen werden.

Andere Tipps

Nur um zu zeigen, wie ich verwenden, die Ramnath Vorschläge (so zu helfen Anfänger wie ich) (danke!):

foo= read.csv('~/Desktop/foo.csv', header=T)
foomelt = melt(foo)
foomelt$Station<-factor(foomelt$Station, levels=unique(as.character(foo[[1]]))) #to keep the order of the x axis the same
                                                                                # as in the original file`
bigfoo <- subset(foomelt, value > 0) #use only those values that are larger than 0
ggplot(bigfoo, aes(x=bigfoo$Station, y=variable, angle=45, size=(value))) +  geom_point() 
+  opts(theme_bw(), axis.text.x   = theme_text(size=9, angle = 90)) + scale_area()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top