F: Wie kann ich ESS (R) dazu bringen, direkt in einen Emacs-Puffer zu zeichnen?
Bei der Interaktion mit R über ESS wird standardmäßig ein separates Grafikfenster außerhalb von Emacs geöffnet, um die Diagramme zu zeichnen. (Natürlich kann man auch andere Grafikgeräte auswählen. So zeichnen wir in PDF usw.) Zwei Probleme: Erstens stiehlt das neue Fenster Emacs den Fokus, und zweitens wäre es sicher schön, alles schön und aufgeräumt zu halten innerhalb des Emacs-Ökosystems.
Also: Gibt es eine Möglichkeit, "direkt" (oder sogar indirekt) in einen Emacs-Puffer zu zeichnen, und dies, was noch wichtiger ist, ohne viel manuelles Eingreifen des Benutzers?
In diesem alten Stapelüberlauf-Thread gab es einige vorherige Diskussionen , aber die vorgeschlagenen Teillösungen sind nicht ideal. Meistens müssen Sie das Zeichengerät in R (z. B. in PNG) ändern, in eine temporäre Datei plotten und diese Datei dann manuell in einem Emacs-Puffer aufrufen. Das alles erscheint mir sehr klobig, insbesondere wenn das Ziel darin besteht, das Plotfenster / den Puffer interaktiv zu verwenden und viele Plots in einer Sitzung zu zeichnen (oder ihnen im laufenden Betrieb Layer hinzuzufügen).
Ich spekuliere hier, aber es fällt mir auf, dass dies ein nützliches Format sein könnte, da sowohl R als auch Emacs SVG unterstützen. Mir ist jedoch nicht klar, ob / wie man sich in den R-Prozess einbinden könnte, um on the fly zu kommunizieren. Gibt es eine Möglichkeit, R SVG-Code direkt in einen Emacs-Puffer zu spucken, oder muss eine temporäre Datei dazwischengeschaltet werden? Wie kann man Emacs überzeugen, eine neue temporäre Datei automatisch zu besuchen, wenn R sie erstellt, oder einen solchen Plotpuffer zu aktualisieren, wenn die temporäre Datei durch einen neuen Plot aktualisiert / überschrieben wird?
create-image
. Ich kann Ihnen jedoch nicht helfen, R und Emacs dazu zu bringen, miteinander zu kommunizieren, um dies zu erreichen.