Erhalte xlim aus einem Plot in R

7

Ich möchte ein Hist und eine Dichte auf der gleichen Handlung, ich versuche das:

%Vor%

aber ich kann nicht auf xlim und ylim von myPlot zugreifen.

Gibt es eine Möglichkeit, sie von meinemPlot zu bekommen? Was sollte ich stattdessen tun?

    
jimifiki 12.12.2012, 15:05
quelle

5 Antworten

6

Haben Sie darüber nachgedacht, in der ersten Grafik Ihren eigenen xlim und ylim anzugeben (auf die entsprechenden Werte zu setzen) und dann diese Werte erneut zu verwenden, um die Grenzen für das Histogramm in der zweiten Grafik festzulegen?

Allein durch das Zeichnen der Dichte sollten Sie in der Lage sein, sinnvolle Werte für die minimalen und maximalen Werte für beide Achsen auszuarbeiten und dann xmin, xmax, ymin und ymax für diese Werte im folgenden Code zu ersetzen.

etwas wie

%Vor%     
Adam Kimberley 12.12.2012, 15:39
quelle
6

Die Verwendung von par(new=TRUE) ist selten, wenn überhaupt, die beste Lösung. Viele Plotfunktionen haben eine Option wie add=TRUE , die zum vorhandenen Plot hinzugefügt wird (einschließlich der Plotfunktion für Histogramme wie in den Kommentaren erwähnt).

Wenn Sie es wirklich so machen müssen, dann schauen Sie sich das usr Argument für die par Funktion an, macht mylims <- par("usr") die x- und y-Grenzen des existierenden Plots in Benutzerkoordinaten. Wenn Sie diese Informationen jedoch für ein neues Diagramm verwenden, stellen Sie sicher, dass xaxs='i' festgelegt ist oder dass die tatsächlichen Koordinaten, die in dem neuen Diagramm verwendet werden, um 4% über das hinausgehen, was Sie angeben.

Die Funktionen grconvertX und grconvertY sind ebenfalls hilfreich. Sie könnten verwendet werden oder zu diesem Zweck, sind aber wahrscheinlich übertrieben im Vergleich zu par("usr") , aber sie können nützlich sein, um die Grenzen in anderen Koordinatensystemen zu finden oder um Werte wie die Mitte der Zeichenregion in Benutzerkoordinaten zu finden.

    
Greg Snow 12.12.2012 17:49
quelle
4

Wenn Sie aus irgendeinem Grund range() nicht verwenden können, um die Grenzwerte zu erhalten, folge ich @ Gregs Vorschlag. Dies funktioniert nur, wenn die par -Parameter "xaxs" und "yaxs" auf "s" gesetzt sind (was der Standardwert ist) und der Koordinatenbereich um 4% erweitert wird:

%Vor%     
dojuba 31.10.2013 14:03
quelle
2

Ich denke, die beste Lösung ist, sie zu reparieren, wenn Sie Ihre Dichte grafisch darstellen.

Sonst hacing im Code von plot.default (plot.R)

%Vor%

oder um den obigen Code zu verwenden, um xlim und ylim zu generieren, rufen Sie dann Ihr Diagramm für die Dichte

auf %Vor%

    
agstudy 12.12.2012 15:35
quelle
1

Warum nicht ggplot2 verwenden?

%Vor%

    
Roland 12.12.2012 17:21
quelle

Tags und Links