IST - Física MEFT - Programação 10:43:36
25 - Apr - 2024
  Página de entrada  
  Informações  
  Avaliação  
  Sumários  
  Séries Semanais  
  Trabalhos Finais  
  Bibliografia  
  Manuais  
  Links Úteis  
  HowTo  
  Pagina Web (Exemplo)  
  Turmas de Laboratório  
  Notas Finais e Marcações  
  Contacto  

HowTo: gnuplot


Sumário
1. Introdução
2. Como fazer a instalação em Microsoft Windows
3. Como executar o gnuplot
4. Exemplo duma função gerada por um programa: sin
5. Como criar um gráfico dada uma função
6. Como criar um gráfico a partir de um ficheiro de dados
7. Como criar um gráfico a partir de um ficheiro de comando
8. Como criar um gráfico a partir de um ficheiro de comando
9. Como exportar um gráfico para LaTeX
10. Como executar um gráfico a partir de um programa
11. Documentação e links úteis
Início

1. Introdução

Gnuplot é um programa gráfico com uma interface de comando em linha com versões para praticamente todas as plataformas (Unix, Windows, DOS, Macintosh, etc.). É particularmente orientado para trabalho científico. É utilizado por outros programas na geração de gráficos.

É conveniente fazer a instalação dos pacotes 'Ghostscript'.

Início

2. Como fazer a instalação em Microsoft Windows

  • Fazer o download da versão windows, por exemplo, de https://sourceforge.net/projects/gnuplot/files/gnuplot/;
  • Desmanchar o ficheiro, por exemplo, na pasta 'Programs';
  • Se desejar, durante a instalação, pode criar um atalho na área de trabalho. Se não o fizer e se o desejar fazê-lo mais tarde pode criar um atalho para 'wgnuplot' que se encontra na directoria ' ..\gnuplot\bin\ '.
  • Pode testar o seu funcionamento, executando e dando o comando 'plot sin(x)'
  • Poderá ainda experimentar algumas demonstações que se encontrar no site do gnuplot.
Início

3. Como executar o gnuplot

  • O programa, em unix é executado a partir dum terminal: gnuplot
  • Em Microsoft Windows pode executar-se a aplicação: wgnuplot ou gnuplot na janela de comandos
Início

4. Exemplo duma função gerada por um programa: sin


int main ()
{
  FILE   *fich1     ;
  double  x, dx, xf ;

  x = - 2. * M_PI;
  xf = 2. * M_PI;
  dx = 0.01;
  fich1 = fopen ("func_sin.txt","wt");
  while (x < xf)
    {
      fprintf (fich1, "%lf %lf\n", x, sin(x));
      x += dx;
    }
  fclose (fich1);
  return 1;
}
Início

5. Como criar um gráfico dada uma função

  • A maneira mais simples de criar um gráfico da função 'sin':

         plot sin(x)

  • Para traçar o gráfico da função 'f(x) = sin(x*a)' para os valores a=0.2 e a=0.4:

         plot f(x) = sin(x*a), a = .2, f(x), a = .4, f(x)

  • Para fazer o gráfico dando os valores limites dos eixos:

         plot [t=1:10] [-1.1:1.1] sin(t)

  • Para representar duas funções em intervalos definidos:

         plot [t=-pi:pi] [-1.3:1.3] [-1:1] sin(t),t**2-1

  • Para representar duas funções em intervalos definidos, com títulos:

          plot [t=-pi:pi] [-1.3:1.3] [-1:1] sin(t) title "Função sin(x)", t**2-1 title "Função t^2-1"

  • Declarar uma função e depois executar o seu gráfico:

         func1(x) = x**2 - 5*x + 6
         plot [0:6] func1(x)

Início

6. Como criar um gráfico a partir de um ficheiro de dados

  • A maneira mais simples de criar um gráfico é:

         plot "func_sin.txt" using 1:2

  • Se quisermos traçar linhas:

         plot "func_sin.txt" using 1:2 with lines

  • Se quisermos traçar pontos:

         plot "func_sin.txt" using 1:2 with dots

Início

7. Como criar um gráfico a partir de um ficheiro de comando

      Download exemplo: gnuplot_Cria_Imagem_LaTeX.zip

  • É igualmente possível construir um ficheiro de comandos para criar um ficheiro '.tex' capaz de ser integrado num texto em LaTeX. Este ficheiro de comandos 'gnuplot_faz__sin.txt' contém igualmente um conjunto de especificações sobre o gráfico a representar:
    
       reset
       set terminal push
       set terminal latex
       set output "eg1.tex"
       set format y "$%g$"
       set format x "$%.2f$"
       set title "sin(x)"
       set xlabel "Este é o eixo dos $x$"
       set ylabel "Este é o $sin(x)$"
       unset key
       set xtics -pi,pi/4
       plot [-pi:pi] [-1:1] sin(x)
    

    para a sua execução:

         $ gnuplot;
         load "gnuplot_faz__sin.txt";
         quit

Início

8. Como criar um gráfico a partir de um ficheiro de comando

  • Gráfico da função 'func(x,y) = x**2-y**2':

         splot func(x,y)=x**2-y**2, func(x,y)

Início

9. Como exportar um gráfico para LaTeX

      Download exemplo: gnuplot_Cria_Imagem_LaTeX.zip

  • Para cria uma folha de texto com o gráfico anterior, pode o usar-se o ficheiro 'ler_figura.tex':
    
       \documentclass[12pt]{article}
       \usepackage[latin1,utf8]{inputenc}
       \usepackage[portuges]{babel}
       \begin{document}
       \input{eg1.tex}
       \end{document}
    
  • Para compilar o ficheiro LaTeX:
    
    $ latex ler_figura.tex
    
  • Para compilar o ficheiro LaTeX (transforma o ficheiro '.tex' num '.dvi'):
    
    $ latex ler_figura.tex
    
  • Para visualizar um ficheiro '.dvi':
    
    $ xdvi ler_figura.dvi
    
  • Para converter um ficheiro '.dvi' num '.pdf':
    
    $ dvipdf ler_figura.dvi
    
  • Para converter um ficheiro '.dvi' num '.ps':
    
    $ dvips ler_figura.dvi
    
  • Nota é igualmente possível compilar um ficheiro LaTeX e convertê-lo directamente num '.pdf';
    
    $ pdflatex ler_figura.tex
    
Início

10. Como criar uma imagem a partir de uma gráfico

Para criar uma imagem a de um gráfico em 'png' fazer no 'gnuplot':
set term png
set output 'plot.png'
    (depois dar a ordem de 'plot')
exit
Para criar outros tipos de output usar terminais 'jpeg', 'pdf', 'git', etc.
Início

11. Como executar um gráfico a partir de um programa

      Download exemplo: gnuplot_ProgGraf.zip

  • Cria-se um ficheiro com os dados com os quais se pretende fazer o gráfico. Exemplo:

           fprintf (fich1, "%12.4f %12.4f %12.4f %12.4f\n", x1, y1, z1, exp(x1));

  • Uma vez concluído o ficheiro, dá-se a ordem para a realização do gráfico:

          system ("gnuplot Exec_Gnuplot");

    em que 'Exec_Gnuplot' é um ficheiro que contém as ordens de execução do gráfico:

          set term x11 
          set macros
          style1 = "lines lt 1 lw 2 title \"Metodo de Euler\""
          style2 = "lines lt 3 lw 2 title \"Metodo de Runge-Kutta\""
          style3 = "lines lt 2 lw 2 title \"Funcao Exponencial\""
          range1 = "using 1:2"
          range2 = "using 1:3"
          range3 = "using 1:4"
    
          plot "Prog__Data.txt" @range1 with @style1, "Prog__Data.txt" @range2 with @style2,\
               "Prog__Data.txt" @range3 with @style3
          pause mouse button1,keypress
    

    O gráfico é fechado com um 'click' do rato sobre o gráfico.

Início

12. Documentação e links úteis

Início