füge x = y Zeile zum Streudiagramm hinzu

8

Ich verwende die Scatterplot-Funktion aus dem Auto-Paket, um ein Streudiagramm zu erzeugen. Ich möchte in der Lage sein, eine Bezugslinie zu erzeugen, die x = y sein sollte. Ich habe versucht, mit abline und es fügt eine Zeile, aber es ist nicht die x = y Zeile. Kann jemand helfen?

Mein Code ist wie folgt:

%Vor%

Danke.

    
CadisEtRama 06.12.2013, 20:33
quelle

3 Antworten

1

Das ist eigentlich ziemlich schwierig / hackish, weil scatterplot() intern layout verwendet, was es schwierig macht, das Subplot zu steuern, das gerade vom Grafiktreiber benutzt wird. ( Update : Es ist schwieriger als ich dachte - die Einstellung par("mfg") muss mehr oder weniger zufällig funktionieren.)

Erstellen Sie Daten ( update : Verwenden Sie Daten mit Mittelwert x und y nicht gleich Null und nicht gleich zueinander, da dies die Schwierigkeit verdeutlicht, abline() eindeutiger zu verwenden)

%Vor%

Versuche meine alte Strategie (die nicht wirklich funktioniert oder nur unvorhersehbar funktioniert):

%Vor%

}

Je nachdem, wie ich das mache, erhalte ich entweder Warnungen und Fehler oder falsche Antworten. Es scheint egal zu sein, ob ich den scatterplot() Aufruf innerhalb einer Funktion mache ... ??

Zweiter Versuch, konservativer: Layout von Grund auf rekonstruieren.

%Vor%

Angesichts des Aufwands und der Fragilität dieser Lösung ist es möglicherweise am besten, scatterplot zu hacken, um optional abline() zusätzlich anzugeben, oder den Betreuer nach dieser Fähigkeit zu fragen ...

    
Ben Bolker 06.12.2013, 21:53
quelle
3

Ich benutze nur die Funktion segments: Segmente (x0 = 0, y0 = 0, x1 = 45, y1 = 45)

Stellen Sie einfach die y-Werte knapp über die Grenzen Ihres Diagramms.

Diese Funktion ist auch gut, weil sie Ihre x- und y-Grenzen nicht verändert, so dass die Linie sauber über Ihre Grafik laufen kann, ohne die x- und y-Werte genau auswählen zu müssen.

    
Denys Kelly 16.12.2015 16:01
quelle
1

Sie können Ihr Ziel mit der gleichen Funktion abline erreichen. Verwenden Sie die Funktion abline(a=0, b=1) , wobei a und b jeweils der Schnittpunkt und der Abfall der Linie sind. Dies zeichnet eine gerade Linie der Form Y = a + b*x .

Hoffe, das hilft.

    
Alemnew Sheferaw Asrese 28.03.2017 13:48
quelle

Tags und Links