2017-06-28 2 views
1

enter image description herer Plotkennungen Wert skaliert zeigend

Meine r Code zeichnet die Grafik

p <- ggplot() + 
    geom_point(data=data2, aes(x=df, y=dn, size=avgdice^3, fill = log2(tsSTDCommoncrawl)), shape=21) 

p <- p + xlab("document fraction between commoncrawl and directcrawl") + 
    ylab("document number in commoncrawl") + 
    labs(fill="timestamp \nvariance",size ="average \ndice value") 

So ist die size und fill im Code skaliert wird. Aber ich möchte, dass die Legenden auf der rechten Seite des Graphen den ursprünglichen Wert von avgdice und tsSTDCommoncrawl anstelle der avgdice^3 und log2(tsSTDCommoncrawl) Werte zeigen.

Antwort

0

Dies wird zwei Schritte dauern. Sie müssen herausfinden, wo ggplot die Pausen setzt, und sie dann manuell in einen scale Aufruf eingeben. Lassen Sie uns den Iris-Datensatz verwenden. Ich möchte eine weitere Spalte mit Sepal.Length gewürfelt hinzufügen Unterschiede in der Größe zu betonen:

example=iris 
example$sizes=example$Sepal.Length^3 

Jetzt kann ich es Parzelle: 100,

gplot(example, aes(x=Petal.Length, y=Petal.Width))+ 
+ geom_point(aes(size=sizes))+ 
+ scale_size_continuous(range=c(1,10)) 

enter image description here

Die Legende setzt Pausen 200, 300 und 400. Also muss ich nur die gewürfelten Wurzeln von denen in der scale Anruf nehmen, mit breaks und labels:

> ggplot(example, aes(x=Petal.Length, y=Petal.Width))+ 
+ geom_point(aes(size=sizes))+ 
+ scale_size_continuous(range=c(1,10), breaks=c(100, 200, 300, 400), labels=c(100, 200, 300, 400)^(1/3)) 

enter image description here

Sie einen Vektor von Text verwenden können Etiketten auch, solange die Anzahl der Elemente auf die Anzahl der Pausen gleich ist.