2016-07-15 4 views
-3

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

Я хотел бы построить каждый два столбца кадра данных и каждый раз, я хочу, чтобы график приостановился, пока я, например. нажмите кнопку «Ввод», затем перейдите к другому сюжету.

я привести пример данных ниже

mydf<- structure(list(Am = c(0.91971, 0.61566, 0.78723, 1.038, 0.65656, 
0.9448, NaN, 1.1353, 0.82117, 0.15673, 0.083684, 1.145, 0.53346, 
1.0294, 1.0154, NaN, 0.97639, 0.090728, 0.65683, 1.1206, NaN, 
NaN, 0.9239, 0.78985, 0.95377, 1.0535, 1.032, 1.0663, 1.0226, 
0.967), Bm = c(0.27, NaN, 0.56, NaN, 20, 10, 0.1, 0.3, 0.6, NaN, 
NaN, NaN, 0.7, NaN, 0.9, NaN, 4, NaN, 10, NaN, 1, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN), Cm = c(NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 0.91, NaN, NaN, NaN, 
NaN, 0.75, NaN, 0.46, NaN, 0.1, NaN, NaN, 10, NaN, 20, NaN, 5 
), Dm = c(NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, 100, NaN, NaN, 1, NaN, 100, NaN, NaN, 0.8, NaN, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN), Em = c(NaN, NaN, NaN, NaN, NaN, 
NaN, NaN, 21, NaN, 4, NaN, 0.3, NaN, 0.1, NaN, NaN, 0.2, NaN, 
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN), 
    Fm = c(NaN, 0.22, 0.43, NaN, 0.66, NaN, NaN, NaN, NaN, NaN, 
    NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
    NaN, 100, NaN, 5, NaN, 1, NaN, 20), Gm = c(NaN, NaN, NaN, 
    NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
    NaN, NaN, NaN, NaN, 0.5, NaN, NaN, 0.1, NaN, 0.6, NaN, NaN, 
    NaN, NaN, NaN), Hm = c(NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
    NaN, 0.5, NaN, NaN, 4, NaN, NaN, 0.8, NaN, 0.22, NaN, NaN, 
    NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN), Im = c(NaN, 
    100, NaN, NaN, NaN, 200, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
    NaN, NaN, 50, NaN, NaN, 0.12, 0.14, 0.15, 0.99, NaN, NaN, 
    100, NaN, NaN, NaN, NaN, NaN), Jm = c(NaN, NaN, NaN, 0.22, 
    NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
    NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, 
    NaN, NaN)), .Names = c("Am", "Bm", "Cm", "Dm", "Em", "Fm", 
"Gm", "Hm", "Im", "Jm"), row.names = c(NA, -30L), class = "data.frame") 

Если человек хочет сделать сюжет, например, между первой колонной и второй колонке. это делается с использованием

plot(mydf[,1],mydf[,2]) 

Я не мог найти способ приостановить или установить r для щелчка по графику.

+0

Может быть, пары (mydf) '? – zx8754

+0

Я предполагаю, что вам придется играть с пакетом 'Shiny', чтобы сделать что-то интерактивное. – Tensibai

ответ

1

Я думаю, что самый простой способ сделать то, что вы хотите, - включить график в цикл (I) и использовать один из нескольких вариантов удерживания (II).

(I) цикл:

петля будет выглядеть примерно так:

for (i in 2:number_of_plots) { 
    plot(mydf[,i-1],mydf[,i]) 
    <<hold_option>> 
} 

(II) hold_option:

Если вы хотите провести, по пока ключ не является нажата вы можете проверить базовую функцию R readline (введите ?readline в свой терминал, чтобы посмотреть, как это работает, для разных трудовых коллективов Я рекомендую читать this вопрос). Вот пример, если вы хотите, чтобы цикл продолжался после нажатия кнопки.

for (i in 2:number_of_plots) { 
    plot(mydf[,i-1],mydf[,i]) 
    line <- readline() 
} 

Если вы хотите ждать определенное количество времени чек на sys.sleep функцию базового R через ?sys.sleep. Вот пример, если вы хотите, чтобы цикл продолжался в течение 3 секунд:

for (i in 2:number_of_plots) { 
    plot(mydf[,i-1],mydf[,i]) 
    line <- Sys.sleep(3) 
} 
+0

Я абсолютно согласен. Для моей точки зрения достаточно одного варианта показать полное решение как пример с внешним источником для других параметров. – Tensibai

Смежные вопросы