2017-06-27 4 views
1

Ich versuche, ein R-Skript zu schreiben, das eine Reihe von Karten mit Punkten speichert. Für die Karte habe ich ggmap und geom_point für die Punkte verwendet. Es gibt eine Karte für jeden Tag in einem bestimmten Zeitraum.maximale Punktgröße in R ggplot

Die Größe der Punkte hängt von einer bestimmten Variablen ab, aber ich habe ein Problem damit, sie zu skalieren. Ich soll später eine Animation aller Karten erstellen, die die Größe der Punkte über die Zeit verändern, das heißt, ich brauche eine globale Skala für die Dimension der Punkte, Abstand vom kleinsten Wert (Null) bis zum größten Wert dieser Variablen (das globale Maximum). In den meisten Karten wird der größte Wert nicht erreicht. Ich habe versucht, mit:

scale_size_area(max_size = max(my_variable)) 

weil scale_size_area sehr kleine Punkte für die 0-Werte plotten ermöglicht. Ich hatte gehofft, dass der so geschriebene Code die Punkte korrekt skalieren würde, wobei das globale Maximum als maximale Größe verwendet würde, aber es scheint nicht zu funktionieren. Jede Karte hat immer noch einen lokal größten Punkt, der die gleiche Größe wie der größte Punkt in jeder Karte hat. Hier ist ein Beispiel, wo zwei Punkte mit unterschiedlichen Werten haben die gleiche Größe:

enter image description here

Ich hoffe, dass ich mein Problem erklären könnte. Ich wäre froh, einen Vorschlag zu hören.

+0

Ich glaube, wenn Sie den gleichen max für alle Tage zu beheben Es kann funktionieren. Bedeutet das, wenn zum Beispiel 4 für alle Tage Ihr Maximum ist, setzen Sie einfach 4 in Ihr Argument. Ich weiß nicht, ob es aber funktioniert. –

+0

Ich denke, es ist, was ich getan habe, da der Ausdruck max (my_variable) in jeder Map den gleichen Wert hat. Zum Beispiel "4". Trotzdem sind meine Punkte nicht einheitlich skaliert. – Frannzz

+0

Ich habe gerade festgestellt, dass 'max_size' sich nicht auf den Wert der Variablen bezieht, sondern nur auf den Bereich des Punktes, also verstehe ich, warum es nicht funktioniert, aber ich weiß nicht, wie ich es lösen soll. – Frannzz

Antwort

0

Um die Maximal- und Minimalwerte in einer Skala (Größe oder auf andere Weise) zu setzen, verwendet limits:

scale_size_area(limits = c(NA, max(your_varible)) 

NA berechnet das Minimum

+0

das hat funktioniert, danke! – Frannzz