passando o arquivo do script bash para o script gnuplot

4

Eu sou novo no gnuplot e estou preocupado em passar meu argumento agora eu tenho este script bash simples e um script do gnuplot.

no script bash plot.sh eu deveria modificar meu arquivo e enviá-lo para o script do gnuplot para ser plotado OU eu posso modificar meu arquivo e apenas enviar um parâmetro (um número passado de outro script $ 1) para o script do gnuplot que identifica qual arquivo a ser plotado, o problema é que nenhuma das duas formas está funcionando, eu não pareço acertar! alguma ajuda?

aqui está meu script plot plot.sh

#!/bin/bash

sed -i 's/ns/;/g' /dev/shm/waitingTime$1.txt
gnuplot -e "filename='/dev/shm/waitingTime$1'" file.gnuplot

E aqui está o meu script do gnuplot chamado file.gnuplot

#!/home/yas/file.gnuplot

set xlabel "start"    
set ylabel "Delay"
set autoscale
set style line 1 lt 1 lw 3 pt 3 linecolor rgb "red"
plot<"filename"> using 1:2 w points title "tests"
set terminal postscript portrait enhanced mono dashed lw 1 'Helvetica' 14
set output '/dev/shm/TT.pdf'
pause -1

fim do arquivo.gnuplot

    
por yasmink 15.06.2015 / 14:36

1 resposta

1

Se bem entendi, você deseja que o gráfico apareça no visor e então tenha uma cópia no arquivo PDF /dev/shm/TT.pdf .

Eu vejo dois problemas aqui:

  1. A instrução para o enredo --- você armazena o nome do arquivo em filename , então ypu deveria apenas dizer

    plot filename  using 1:2 w points title "tests"
    

    sem as <" ... coisas.

  2. Se você quiser o arquivo pdf, você deve adicionar um replot após a alteração do terminal e do arquivo de saída (verifique novamente se você pode escrever no diretório de destino).

Eu criei um arquivo data.dat e o arquivo file.gnuplot :

set xlabel "start"    
set ylabel "Delay"
set autoscale
set style line 1 lt 1 lw 3 pt 3 linecolor rgb "red"
plot filename   using 1:2 w points title "tests"
set terminal postscript portrait enhanced mono dashed lw 1 'Helvetica' 14
set output 'TT.pdf'
replot
pause -1

E chamando-o com:

gnuplot -e "filename='data.dat'" file.gnuplot 

Eu tenho a saída:

... e o arquivo TT.pdf correspondente.

A propósito, em vez do pause no final, acho muito melhor adicionar

set terminal wxt persist 

no início e remova a pausa. O script terminará naturalmente e a janela com o gráfico permanecerá até que você o dispense.

    
por Rmano 15.06.2015 / 16:59