Verwenden von grconvertX / grconvertY in ggplot2

8

Ich versuche herauszufinden, wie man in ggplot grconvertX / grconvertX benutzt. Mein ultimatives Ziel ist es, eine Annotation zu einer ggplot2 Figur (und möglicherweise Gitter ) mit grid.text und grid.lines hinzuzufügen, indem man von Benutzerkoordinaten zu Gerätekoordinaten geht. Ich weiß, dass es mit Grobgift gemacht werden kann, aber ich frage mich, ob es einen leichteren Weg gibt.

Mit dem folgenden Code kann ich Werte von Benutzerkoordinaten an ndc-Koordinaten übergeben und diese Werte verwenden, um das Diagramm mit grid.text zu kommentieren.

%Vor%

Der Code basiert auf der Lösung aus einem meiner früheren Posts: Mixing X und Y-Koordinatensysteme . Sie können sehen, wie X-Koordinaten aus dem ursprünglichen Plot in ndc konvertiert wurden. Der Vorteil dieses Ansatzes ist, dass ich Gerätekoordinaten für Y verwenden kann.

Ich nahm an, ich könnte das gleiche in ggplot2 (und möglicherweise in gitter ) machen.

%Vor%

Es funktioniert jedoch nicht richtig. Die Koordinaten scheinen etwas zu sein. Die vertikalen Linien und der Text stimmen nicht mit den Hilfsstrichbeschriftungen in der Zeichnung überein. Kann mir jemand sagen, wie ich es beheben kann? Vielen Dank im Voraus.

    
Max C 10.05.2012, 14:39
quelle

1 Antwort

11

Die Funktionen grconvertX und grconvertY arbeiten mit Basisgrafiken, während ggplot2 Rastergrafiken verwendet. Im Allgemeinen spielen die 2 verschiedenen Grafik-Engines nicht gut zusammen (obwohl du demonstriert hast, dass gridBase hilfreich ist). Das erste Beispiel funktioniert, weil Sie mit einer Basisgrafik begonnen haben, sodass das Benutzerkoordinatensystem mit dem Basisdiagramm vorhanden ist und grconvertX daraus konvertiert. Im zweiten Fall wurde das Benutzerkoordinatensystem nie in der Basisgrafik festgelegt. Daher sieht es so aus, als ob es die Standardkoordinaten von 0,1 verwendet, die den oberen Koordinaten des Ansichtsfensters ähneln, aber nicht identisch sind (Ich bin wirklich überrascht, dass Sie keinen Fehler oder eine Warnung erhalten haben.

Im Allgemeinen ist für Gittergrafiken das Äquivalent zum Konvertieren zwischen Koordinaten das Erstellen eines neuen Ansichtsfensters mit dem gewünschten Koordinatensystem (oder Drücken / Öffnen eines vorhandenen Ansichtsfensters mit dem richtigen Koordinatensystem). Fügen Sie dann Ihre Anmerkungen in dieses Ansichtsfenster ein.

Hier ist ein Beispiel, das Ihr Diagramm erstellt, dann zu dem Ansichtsfenster mit dem Hauptdiagramm herunterfährt, ein neues Ansichtsfenster mit den gleichen Abmessungen erstellt, aber mit abgeschnittenem Ausschnitt, der x-Maßstab basiert auf den Daten und dem y-Maßstab 0,1, fügt dann etwas Text entsprechend hinzu:

%Vor%

Eines der kniffligen Dinge hier ist, dass ggplot2 die Ansichtsfenstermaßstäbe nicht so einstellt, dass sie mit den geplotteten Daten übereinstimmen, sondern die Konvertierungen selbst. In diesem Fall wird die Skalierung basierend auf den x Daten bearbeitet, aber wenn ggplot2 etwas schicker macht, dann funktioniert das vielleicht nicht. Was wir benötigen, ist eine Möglichkeit, um die zurücktransformierten Koordinaten von ggplot2 in den Aufruf von grid.text zu übernehmen.

    
Greg Snow 10.05.2012, 17:36
quelle

Tags und Links