2015-06-23 6 views
15

Come si eliminano i grafici correnti (ma non tutti) nel dispositivo di stampa RStudio?Come si eliminano i grafici correnti (ma non tutti) nel dispositivo di stampa RStudio?

dev.off() rimuoverà tutti i grafici, ma cosa succede se voglio solo rimuoverne uno? Non voglio dover premere quel pulsante rosso 'x' perché voglio rimuovere un grafico senza premere un pulsante.

+0

Perché non produrre i grafici sui file, quindi possiamo scegliere e selezionare quelli che vogliamo mantenere? – zx8754

+0

Nella scheda Plots è presente Remove Plot che rimuoverà qualsiasi trama sia mostrata nella finestra plot. – lawyeR

+0

Potresti forse fornire il comando finale che hai usato nel tuo script R per rimuovere l'ultimo grafico? Ho cercato di capire la funzione C++ descritta da @Haitham, ma ora ho indizio su come farlo funzionare. – drmariod

risposta

11

In r, è necessario utilizzare dev.new() prima di ogni stampa, pertanto è necessario annullare l'ultimo grafico solo da dev.off().

In RStudio, è possibile utilizzare x11(), windows() o quartz() (a seconda del dispositivo) prima di ogni stampa. Quindi chiamare dev.off() per cancellare l'ultimo grafico. È inoltre possibile utilizzare dev.set() per scegliere i grafici specifici in questo modo.

Se la tua domanda chiede in particolare di eliminare l'ultimo grafico all'interno della stessa finestra RStudio (invece di creare nuove finestre), non è sicuro se sia possibile poiché RStudio considera quella finestra come un unico dispositivo. Un'idea sarebbe quella di cercare un modo per chiamare la funzione C++ removePlot() nel progetto RStudio.

Trovato in RStudio github: https://github.com/rstudio/rstudio/blob/9822a771429a865e898a0dc398528d8869f171f1/src/cpp/session/modules/SessionPlots.cpp#L81

C++ Codice: display.removePlot(display.activePlotIndex());

O come @ zx8754 suggerito si potrebbe uscita le trame e gestire i file in questo modo.

Spero che questo aiuti!