У меня есть скрипт bash, который отслеживает использование памяти во времени по мере запуска команды. Он генерирует нужную команду, а затем записывает журнал с помощью столбца1 = «память, используемая программой (концертами)», а столбец 2 - это время, прошедшее за несколько секунд. напримерПостроение и сохранение графика R
31.282 1470
31.565 1480
31.848 1490
31.989 1500
32.273 1510
32.414 1520
32.697 1530
32.980 1540
33.122 1550
33.405 1560
6.511 1570
6.935 1580
7.502 1590
7.926 1600
8.351 1610
8.775 1620
9.059 1630
9.483 1640
9.908 1650
10.333 1660
То, что я хочу сделать, это ждать, пока процесс не будет завершен, а затем использовать R, чтобы построить график использования памяти с течением времени и сохранить его в текущем каталоге. Я играл с R, и я точно знаю, какие команды нужно использовать:
> heisenberg <- read.csv(file="4644.log",head=FALSE,sep=" ")
> plot(heisenberg$V2,heisenberg$V1,type="o",col="red",main="Memory Usage Over Time",xlab="Time (seconds)",ylab="Memory (gigabytes)")
> text(max(heisenberg$V2),max(heisenberg$V1),max(heisenberg$V1)) #Displays max value
Но часть я застрял на сохраняет график в виде JPG или PNG. Или как я мог выполнить эту команду в моем сценарии bash. Мне нужно было бы иметь еще один скрипт, написанный на языке R, и запустить его? Можно ли сделать все в одном?
Редактировать
Вот код для моего script.rpng("mem_usage_2965.png",height=800,width=800)
heisenberg <- read.csv(file="2965.log",head=FALSE,sep=" ")
plot(heisenberg$V2,heisenberg$V1,type="o",col="red",main="oases_k85",xlab="Time (seconds)",ylab="Memory (gigabytes)")
text(max(heisenberg),max(heisenberg),max(heisenberg))
dev.off()
Может кто-нибудь помочь, почему текст не печатается максимальное значение в выводимой PNG? Я называю это сценарием bash, например R CMD BATCH script.r script.out
Почему вы не вычисляете 'max()' 'heisenberg $ V1' и' heisenberg $ V2'? на данный момент вы вычисляете значение, которое является наибольшим значением в кадре данных «heisenberg» для ** обеих ** координат (x и y), поэтому неудивительно, что он не появляется на графике; это вне сюжета.Я думаю, что вы хотите: 'с (heisenberg, text (max (V2), max (V1), max (V1))), по крайней мере, это то, что предлагается в исходном фрагменте кода, который вы показали. Вы понимаете, что новый код не соответствует оригинальному да? –
Присмотревшись ближе, да, я понимаю разницу. Это потому, что я просто открыл скрипт.r, который выдает скрипт bash, но я забыл избежать $. Таким образом, они интерпретировались как нулевые переменные. Я попробую сделать заявление, как вы сказали. Чтобы быть ясным, я хочу показать максимальное значение на графике с текстовым дисплеем. –