Warum plot nicht respektieren add = TRUE?

7

Warum macht Rs Basisplot-Funktion das? Wir müssen points oder lines verwenden, was speziellen Code erfordert, anstatt das type Argument zu verwenden.

%Vor%

usw.

Viele Pakete stellen Methoden für die Darstellung bereit (d. h. "überschreiben") und bieten die offensichtliche Fähigkeit zur Darstellung (obj, add = TRUE), solange obj von der geeigneten Klasse ist. (Beispiele sind sp , raster , spatstat .)

Gibt es irgendeinen Grund plot.default nicht schon?

EDIT: Das wurde hier ausführlich besprochen:

Ссылка

DM beantwortet es effektiv hier: Ссылка

    
mdsumner 15.08.2013, 21:17
quelle

2 Antworten

12

Weil plot.default kein Argument add hat

%Vor%

Diese anderen Funktionen sind nicht , die plot überschreiben, stellen aber ihre eigenen Methoden bereit, die ein Argument add haben, weil sie auf diese Weise geschrieben wurden. Da ich mit points() und lines() etc aufgewachsen bin, finde ich sie nicht viel zusätzliche Arbeit, und ich würde sie lieber als plot -Methode mit einem add -Argument verwenden, obwohl wir beide geschrieben haben Wege in Paketen, an denen ich mitarbeite.

Warum plot.default kein Argument add hat? Sie müssen R Core fragen, aber ich kann einige Gründe vorschlagen

  1. plot.default wurde entwickelt, um ein vollständiges Diagramm auf dem Gerät zu erstellen
  2. Es gibt bereits points() und lines() usw. Warum also duplizieren?
  3. plot.default ist einfacher Code ohne Code, um add zu verarbeiten
  4. Rückwärtskompatibilität mit S / S-Plus
Gavin Simpson 15.08.2013 21:32
quelle
10

Wenn add=TRUE nicht angegeben ist (und Sie Basisgrafiken verwenden), verwenden Sie par(new=TRUE) vor dem Plotaufruf. Sie müssen das xlab, ylab und andere Dinge unterdrücken, die bestehende Annotationen stören oder überlagern könnten, und ich habe das ylab unberührt gelassen, um zu veranschaulichen, warum diese Warnung benötigt wird. Sie müssen auch xlim und ylim so einstellen, dass sie gleich sind.

%Vor%

Nachdem ich die Kommentare gelesen habe, stimme ich @ John zu, dass ein neuer plot -Aufruf möglicherweise einen anderen Satz von xlim und ylim hätte, ganz zu schweigen von der Möglichkeit, alle Textobjekte an den Rändern zu überschreiben. points und lines haben nicht die Möglichkeit, die Grenzen des Diagrammbereichs neu zu berechnen, so dass sie "sicher" mit plot.default verwendet werden können.

    
42- 15.08.2013 21:33
quelle

Tags und Links