Создание серии графиков, которые выполняются одним кликом - PullRequest
14 голосов
/ 17 мая 2011

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

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

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

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

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

Спасибо

Tom

Ответы [ 3 ]

14 голосов
/ 17 мая 2011

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

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, имейте в виду, что вы можете получить довольно неловкое поведение, если начнете играть с этими вещами.

7 голосов
/ 17 мая 2011

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

  • Windows: есть функция записи (см. Q5 для R дляЧасто задаваемые вопросы по Windows ), в которых используется Page Up / Page Down
  • MacOS: в стандартном графическом интерфейсе в окне Quartz отображается стрелка Apple влево и стрелка вправо
  • в стандартном Unix-GUI) интерфейс, вещи более ограничены.Вы можете использовать RStudio (который сейчас очень популярен) ... Я бы подумал, что JGR также будет иметь историю заговоров, но, похоже, этого не происходит...
5 голосов
/ 17 мая 2011

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

for (i in 1:5){
    plot(1:i)
    locator(1)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...