Wie kann die Achse mit ggplot2 asymmetrisch erweitert werden, ohne manuell Grenzen zu setzen?

8

Ich möchte, dass die untere Achse für ein Barplot null ist, aber oben um einen kleinen Betrag erweitert wird (nach einem bestimmten Maßstab). Allerdings zeichne ich die Ausgabe von stat_summary so, dass ich nicht den maximalen Wert habe, der mir zur Verfügung steht, und ich verwende Facetten mit scale="free_y" , so dass ich sie nicht manuell setzen kann. Ansonsten würde ich Baptistes Trick, geom_blank hinzuzufügen. Ich weiß, dass ich die Werte ablesen und einen Datenrahmen mit Obergrenzen manuell erstellen konnte, aber kann das gesetzt werden, ohne die Grenzen fest codieren zu müssen?

Die andere Option besteht darin, die Mittelwerte außerhalb des Funktionsaufrufs zu berechnen und nur zu plotten, ohne stat_summary aufzurufen (auf diese Weise habe ich die Obergrenzen direkt für jede Facette), aber gibt es einen Weg dazu?

Beispiel:

%Vor%     
hatmatrix 18.03.2014, 12:55
quelle

1 Antwort

9

Sie können ggplot "erweitern", indem Sie eine Skala mit einer benutzerdefinierten Klasse erstellen und die interne S3-Methode scale_dimension wie folgt implementieren:

%Vor%

Dies ist auch ein Beispiel für das Überschreiben der Standardskalierung. Um nun das gewünschte Ergebnis zu erhalten, spezifizieren Sie expand wie folgt

%Vor%

wobei der erste Vektor in der Liste der multiplikative Faktor ist, der zweite der additive Teil und das erste (zweite) Element jedes Vektors der unteren (oberen) Grenze entspricht.

    
Rosen Matev 18.03.2014, 14:18
quelle

Tags und Links