Создание серии графиков, которые выполняются щелчком

В приведенном ниже примере я хотел бы иметь возможность контролировать, когда я перехожу на следующий график с помощью щелчка мыши (или ввода клавиатуры)

for (i in 1:5){
    plot(1:i)
    Sys.sleep(1)
    #add something here that requests mouse click to proceed
}

Возможно ли это? В файле справки X11() есть параметр "clickToConfirm", но я не могу понять, что это делает.

Мне также было бы полезно прокручивать назад и вперед по сюжетам с помощью клавиш со стрелками. Это возможно?

В настоящее время, если мне нужно посмотреть много графиков, я выводю их в большой файл .pdf и прокручиваю их все, но это немного громоздко.

Спасибо

Tom

Ответ 1

В R это можно сделать, установив par(ask=TRUE). Попробуйте следующий код, который показывает, как reset par при выходе из функции:

op <- par(ask=TRUE)
for (i in 1:5){
    plot(1:i)
}
par(op)

Если вы хотите, чтобы история просматривалась, вы можете открыть окно и нажать recording в меню History, или вы можете сами открыть окно с историей. Демонстрируется в функции:

plot.fun <- function(){
    windows(record=TRUE) # opens a window and starts recording
    op <- par(ask=TRUE)
    on.exit(par(op))

    for (i in 1:5){
        plot(1:i)
    }
    windows.options(record=FALSE) #stops recording.
}
plot.fun()

Однако это сохранит все предыдущие сюжеты в истории для просмотра, поэтому, если вы запустите этот код 3 раза, у вас будет 15 сюжетов в истории сюжета. Также обратите внимание, что окно открытой сюжета будет продолжаться до тех пор, пока вы не отключите запись в меню.

Вы можете играть с историей сюжетов, так как у вас будет переменная .SavedPlots, которая содержит сохраненную историю сюжетов. Его можно очистить, используя меню History > clear history в окне графика. Если вы хотите удалить историю из консоли, вы можете взломать ее с помощью

.SavedPlots <- NULL 

Но я советую вам не делать этого, так как изменение переменной .SavedPlots может привести к сбою R.

См. также ?windows и? recordPlot для получения дополнительной информации. Но поскольку вы приближаетесь к внутреннему коду R, будьте предупреждены, что вы можете получить довольно неудобное поведение, если вы начнете играть с этими вещами.

Ответ 2

Для прокрутки вперед и назад между графиками с помощью клавиш со стрелками: это зависит от интерфейса платформы /R.

  • Windows: есть функция записи (см. Q5 R для Windows FAQ), которая использует страницу Вверх/вниз страницы
  • MacOS: в стандартном графическом интерфейсе окно Quartz имеет Apple-left и стрелку Apple-right
  • в стандартном интерфейсе Unix (без GUI), все более ограничено. Вы можете использовать RStudio (у которого сейчас много шума)... Я бы подумал, что JGR имел бы историю сюжетов, но, похоже, не...

Ответ 3

Вы можете использовать локатор - теперь графики изменяются при нажатии

for (i in 1:5){
    plot(1:i)
    locator(1)
}