• Publicidad

Cómo ejecutar gnuPlot desde Perl

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Cómo ejecutar gnuPlot desde Perl

Notapor Kathyn » 2010-07-09 00:55 @080

Hola.. ¿cómo puedo ejecutar gnuPlot desde perl para realizar un gráfico?
Tengo éste código, que no me genera errores, pero no funciona.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. qx(/usr/local/bin/gnuplot);
  2.  
  3. qx(set xlabel "Hora");
  4. qx(set ylabel "Paquetes [%]");
  5.  
  6. qx(set output "/home/yo/test/loss1.png");
  7. qx(set title "Paquete");
  8. qx(set term png size 480,360);
  9. qx(set xdata time);
  10. qx(set timefmt "%H:%M"  #%b-%d-%H:%M:%S");
  11.  
  12. qx(set style line 1  lw 1 pt 3);
  13. qx(set style line 2  lw 1 pt 9);
  14. qx(plot '/home/yo/test/loss.txt' using 1:2 with points t  '' ls 1);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Omití algunas partes del código, porque solo son más comandos para generar el gráfico.

Gracias.
Avatar de Usuario
Kathyn
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2010-06-22 13:17 @595

Publicidad

Re: Cómo ejecutar gnuPlot desde Perl

Notapor explorer » 2010-07-09 03:49 @200

En CPAN hay módulos para usar gnuPlot, como por ejemplo Chart::Gnuplot.

Si quieres hacerlo de forma directa, no te vale lo que has escrito. Si lo analizas bien, estas intentando ejecutar el gnuPlot y también sus propios comandos, pero el qx() lo que hace es abrir un shell cada vez. Para la primera llamada, ejecución del gnuPlot, sí que funcionará, pero no para el resto, ya que el shell no tiene ni idea de lo que son los comandos set xlabel y demás.

Si, por ejemplo, supiéramos, que el gnuPlot es capaz de admitir comandos desde la entrada estándar, se podría abrir una tubería hacía él y enviarle los comandos, como hemos comentado ayer, en otro hilo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
open my $gnuplot, q[|], '/usr/local/bin/gnuplot/'
    or  die "ERROR: no puedo arrancar gnuPlot: $!\n";

print   $gnuplot qq(
set xlabel "Hora"
set ylabel "Paquetes [%]"
set output "/home/yo/test/loss1.png"
set title "Paquete"
set term png size 480,360
set xdata time
set timefmt "%H:%M"  #%b-%d-%H:%M:%S"
set style line 1  lw 1 pt 3
set style line 2  lw 1 pt 9
plot '/home/yo/test/loss.txt' using 1:2 with points t  '' ls 1
);

close  $gnuplot;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Hummm... yo preferiría usar el módulo de CPAN...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Cómo ejecutar gnuPlot desde Perl

Notapor Kathyn » 2010-07-09 07:34 @357

Muchas gracias.
Avatar de Usuario
Kathyn
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2010-06-22 13:17 @595

Chart::Gnuplot

Notapor nurikooo » 2010-07-09 17:43 @780

Hola estoy intentando crear gráficos con gnuplot y para eso usé

use Chart::Gnuplot

pero me tira el siguiente error:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Can't locate Chart/GnuPlot.pm in @INC (@INC contains: /usr/local/lib/perl5/5.8.9/BSDPAN /usr/local/lib/perl5/site_perl/5.8.9/mach /usr/local/lib/perl5/site_perl/5.8.9 /usr/local/lib/perl5/5.8.9/mach /usr/local/lib/perl5/5.8.9 .) at ./monitor.cgi line 7.
BEGIN failed--compilation aborted at ./monitor.cgi line 7.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
nurikooo
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2010-06-25 16:37 @734

Re: Chart:Gnuplot

Notapor explorer » 2010-07-09 17:55 @788

El mensaje de error indica que ese módulo no está instalado (mejor dicho, que Perl no encuentra el módulo en ninguno de los directorios indicados).

Depende un poco del sistema operativo que estés usando, pero las reglas generales están aquí, para el caso de Linux/UNIX. Para Windows, tienes otro hilo.

En resumen:

1.- Intenta siempre instalar el módulo a partir del sistema de gestión de paquetes software de tu sistema, o

2.- Hazte administrador y usa el comando cpan (en caso de sistemas de la familia Unix/Linux) o ppm (en el caso de Windows)

3.- Si no es posible ninguna de esas posibilidades, hay que seguir los clásicos 4 pasos de instalación "complicada".
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados