Comment dessiner seulement une gamme de valeurs dans geom_point du package ggplot2?

StackOverflow https://stackoverflow.com/questions/3694862

  •  02-10-2019
  •  | 
  •  

Question

text alt Bonjour à tous, J'ai les données en fusion suivantes:

 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.

J'ai utilisé le code suivant pour tracer une BubbleChart des données:

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()

Tout va bien sauf que je veux ignorer les 0 (zéro) les valeurs et utiliser uniquement pour la mise à l'échelle des valeurs de points entre tous ceux qui sont râpe que des zéros et la valeur maximale. Je ne veux pas supprimer les valeurs nulles lignes des données, car pour prouver un point que je veux toutes les stations et variables à inclure et d'avoir ceux avec le flan gauche de la valeur zéro.

J'ai réussi à l'utiliser pour ignorer les valeurs nulles, mais mise à l'échelle ne fonctionne pas:

   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()

toute aide serait grandement appréciée.

Était-ce utile?

La solution

Je ne suis pas sûr que ce soit ce que vous cherchez, mais une approche d'ignorer les valeurs zéro en plaçant les points est de modifier votre déclaration geom_point () à

geom_point(subset = .(value > 0))

cette ligne passe seules les valeurs non nulles dans la trame de données à tracer.

Autres conseils

Juste pour montrer comment je suggestions de Ramnath (pour ainsi aider les novices comme moi) (les merci!):

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()
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top