Wie zeichnest du eine Linie über eine mehrdimensionale Umgebung in R?

8

Nehmen Sie ein sehr einfaches Beispiel, mfrow=c(1,3) ; jede Figur ist ein anderes Histogramm; Wie würde ich eine horizontale Linie zeichnen (ähnlich wie abline(h=10) ), die sich über alle 3 Zahlen erstreckt? (Das heißt, sogar die Ränder zwischen ihnen.) Natürlich könnte ich jeder Figur eine Abline hinzufügen, aber das ist nicht was ich will. Ich kann mir eine sehr komplizierte Methode vorstellen, indem ich wirklich nur eine Figur habe und jede Figur mit polygon usw. zeichne. Das wäre lächerlich. Gibt es nicht einen einfachen Weg, dies zu tun?

    
gung 02.04.2012, 23:02
quelle

3 Antworten

13

Wie bereits erwähnt, bietet das grafische Grid grafische System eine flexiblere Kontrolle über die Anordnung mehrerer Plots auf einem einzigen Gerät.

Hier verwende ich zuerst grconvertY() , um den Standort einer Höhe von 50 auf der Y-Achse in Einheiten von "normalisierten Gerätekoordinaten" abzufragen. (d. h. als ein Anteil der Gesamthöhe der Zeichenvorrichtung mit 0 = unten und 1 = oben). Ich verwende dann Gitter Funktionen, um: (1) ein viewport zu drücken, das das Gerät füllt; und (2) zeichne eine Linie auf der Höhe, die von grconvertY() zurückgegeben wird.

%Vor%

BEARBEITEN : @joran hat gefragt, wie Sie eine Linie zeichnen können, die von der y-Achse des ersten Plots bis zum Rand des letzten Balkens im dritten Plot reicht. Hier sind ein paar Alternativen:

%Vor%

Schließlich ist hier ein fast äquivalenter und allgemein nützlicherer Ansatz. Es verwendet die Funktionen grid.move.to() und grid.line.to() demo'd von Paul Murrell in dem Artikel, der in @ mdsumners Antwort verlinkt ist:

%Vor%     
Josh O'Brien 03.04.2012, 01:17
quelle
6

Dies ist das Beste, was ich tun kann, ohne darüber härter zu denken:

%Vor%

Ich bin mir nicht sicher, wie ich sicherstellen kann, dass die Leitung an der richtigen Stelle endet, ohne dass etwas bastelt. Das Aufzeichnen eines Segments in jeder Region würde das lösen, aber das Problem einführen, dass die Höhen richtig ausgerichtet sind. Aber das könnte zumindest ein guter Ausgangspunkt sein.

Ich denke, das ist in Grid Grafiken einfacher, aber ich müsste etwas nachforschen, um es zu verifizieren.

    
joran 02.04.2012 23:23
quelle
4

Dieser Artikel von Paul Murrell zeigt die Verwendung von grid graphics, um Linien zwischen zwei verschiedenen Koordinatensystemen zu zeichnen, in diesem Fall Linien, deren Endpunkte im nativen Raum von zwei separaten Unterparzellen angegeben sind:

Paul Murrell. Das Grid-Grafikpaket. R News, 2 (2): 14-19, Juni 2002

Es ist auf Seite 17 des PDF-Artikels:

Ссылка

    
mdsumner 02.04.2012 23:48
quelle

Tags und Links