Tengo un script bash que rastrea el uso de memoria a lo largo del tiempo a medida que se ejecuta un comando. Genera el comando deseado y luego escribe un registro con column1 = "memoria en uso por programa (gigs)" y la columna 2 es el tiempo transcurrido hasta el momento en segundos. p.ej.Trazado y guardado gráfico 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
Lo que quiero hacer es esperar hasta que el proceso esté completo y luego utilizar R para trazar un gráfico del uso de la memoria en el tiempo y lo guarda en el directorio actual. Yo estaba jugando con R y sé exactamente lo que los comandos que necesito utilizar:
> 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
Pero la parte que estoy atascado en el gráfico es el ahorro como un jpg o png. O cómo podría ejecutar este comando dentro de mi script bash. ¿Necesitaría absolutamente tener otro script escrito en lenguaje R y ejecutarlo? ¿Sería posible hacer todo en uno?
Editar
Este es el código para mi 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()
¿Alguien puede ayudar por qué el texto no se imprime el valor máximo en el png emitida? Lo estoy llamando en un script bash como R CMD BATCH script.r script.out
¿Por qué no calcula el 'max()' de 'heisenberg $ V1' y' heisenberg $ V2'? en este momento está calculando un valor que es el valor más grande en el marco de datos 'heisenberg' para las ** ** coordenadas (xey), por lo que no es de extrañar que no aparezca en el gráfico; está fuera de la trama.Creo que quiere: 'con (heisenberg, texto (max (V2), max (V1), max (V1)))' al menos eso es lo que sugiere el fragmento de código original que mostró. ¿Te das cuenta de que el nuevo código no coincide con el sí original? –
Al mirar más de cerca, sí me doy cuenta de la diferencia ahora. Eso es porque simplemente abrí la secuencia de comandos.r que la secuencia de comandos bash de salida, pero me olvidé de escapar del $. Por lo tanto, se interpretaron como variables nulas. Voy a probar la declaración con como dijiste. Para que quede claro, lo que quiero es mostrar el valor máximo en el gráfico con una pantalla de texto. –