Blasendiagramm für Integer-Variablen, bei denen die größte Blase einen Durchmesser von 1 hat (auf der x- oder y-Achsenskala)?

8

Ich möchte die folgenden Ergebnisse erzielen:

  1. Skaliere die Größe der Blasen so, dass die größte Blase a hat Durchmesser von 1 (je nachdem, welcher die stärker komprimierte Skala des x hat und y-Achsen).
  2. Skalieren Sie die Größe der Blasen so, dass die kleinste Blase einen Durchmesser von 1 mm hat
  3. Lassen Sie eine Legende mit dem ersten und letzten Punkt das Minimum ungleich Null Frequenz und die maximale Frequenz.

Das Beste, was ich tun konnte, ist wie folgt, aber ich brauche eine allgemeinere Lösung, bei der der Wert von maxSize berechnet und nicht hart codiert wird. Wenn ich es in den traditionellen R-Plots machen würde, würde ich par ("pin") verwenden, um die Größe des Plot-Bereichs auszuarbeiten und rückwärts zu arbeiten, aber ich kann nicht herausfinden, wie ich mit ggplot2 auf diese Informationen zugreifen kann. Irgendwelche Vorschläge?

%Vor%

So sieht es bisher aus:

    
Tim 25.07.2012, 20:03
quelle

1 Antwort

7

Wenn kein ggplot-, gitter- oder anderes Highlevel-Paket den Job ohne stundenlanges Feintuning erledigt, wechsle ich immer zu den Basisgrafiken zurück. Der folgende Code bringt Sie, was Sie wollen, und danach habe ich ein anderes Beispiel, basierend darauf, wie ich es gezeichnet hätte.

Beachten Sie jedoch, dass ich den maximalen Radius auf 1 cm eingestellt habe. Teilen Sie stattdessen size.range/2 , um stattdessen den Durchmesser zu erhalten. Ich dachte nur, Radius hätte mir schönere Plots, und wahrscheinlich wirst du die Dinge sowieso anpassen wollen.

%Vor%

Jetzt folgt mein Vorschlag. Der größte Kreis hat einen Radius von 1 cm und die Fläche der Kreise ist proportional zu agData$freq , ohne eine Größe des kleinsten Kreises zu erzwingen. Persönlich denke ich, das ist leichter zu lesen (sowohl Code und Figur) und sieht schöner aus.

%Vor%

    
Backlin 16.08.2012, 11:44
quelle

Tags und Links