Gnuplot: mudanças entre as edições

De Física Computacional
Ir para navegação Ir para pesquisar
Sem resumo de edição
Linha 31: Linha 31:
</pre>
</pre>


=== Exercícios ===
==Comandos básicos==
Os seguintes exercícios visam a familiarização com o Gnuplot para depois poder fazer os gráficos do seu interesse.
Os seguintes exercícios visam a familiarização com o Gnuplot para depois poder fazer os gráficos do seu interesse.


==Graficando funções:==
===Graficando funções:===


1. Gráfico da função seno
1. Gráfico da função seno
Linha 169: Linha 169:
             gnuplot> set nokey
             gnuplot> set nokey


== Ajuste de curvas (fit) ==
===Ajuste de curvas (fit)===


Definir uma função
Definir uma função
Linha 207: Linha 207:
  gnuplot> plot "x.dat", f(x)
  gnuplot> plot "x.dat", f(x)


== Lista de Funções ==
===Lista de Funções===
Se alguém pode arrumar vou agradecer!
Se alguém pode arrumar vou agradecer!


Linha 283: Linha 283:
</pre>
</pre>


== Links ==
==Links==
[http://www.gnuplot.info/faq/faq.html FAQS]
[http://www.gnuplot.info/faq/faq.html FAQS]

Edição das 18h51min de 23 de outubro de 2011

GNUPLOT é um programa para fazer gráficos de livre distribuição. Gnuplot é interativo, mas a comunicação é na linha de comando (sem menus nem uso do mouse). Pode se graficar funções em uma o duas variáveis (mapas de contorno também) definidas dentro dele ou de arquivos de dados externos. O link abaixo contem a documentação completa. Aqui apresentamos tutoriais baseados em exercícios simples.

  • GNUPLOT documentation

Escreva "gnuplot" no seu terminal X (xterm), e verá algo assim na sua tela:

        G N U P L O T
        Version 4.0 patchlevel 0
        last modified Thu Apr 15 14:44:22 CEST 2004
        System: Linux 2.6.18-5-k7

        Copyright (C) 1986 - 1993, 1998, 2004
        Thomas Williams, Colin Kelley and many others

        This is gnuplot version 4.0.  Please refer to the documentation
        for command syntax changes.  The old syntax will be accepted
        throughout the 4.0 series, but all save files use the new syntax.

        Type `help` to access the on-line reference manual.
        The gnuplot FAQ is available from
                http://www.gnuplot.info/faq/

        Send comments and requests for help to
                <gnuplot-info@lists.sourceforge.net>
        Send bugs, suggestions and mods to
                <gnuplot-bugs@lists.sourceforge.net>


Terminal type set to 'x11'

Comandos básicos

Os seguintes exercícios visam a familiarização com o Gnuplot para depois poder fazer os gráficos do seu interesse.

Graficando funções:

1. Gráfico da função seno

           gnuplot> plot sin(x)

2. Agora a função coseno no mesmo gráfico com o seno

           gnuplot> replot cos(x)

3. Nomeamos os eixos

           gnuplot> set xlabel "eixo Y"
           gnuplot> set ylabel "eixo X"

4. Acrescentar o título "SENO e COSENO" e re-desenhar

           gnuplot> set title "SENO e COSENO"
           gnuplot> replot

Atenção: se o gráfico é para ser inserido num relatório, então não colocamos título

5. Legendas: identificar as funções com os nomes "seno(x)" e "coseno(x)" respectivamente

           gnuplot> plot sin(x) title "seno(x)", cos(x) title "coseno(x)"

6. O gnuplot usa autoscale para dados e a escala x: -10, 10 para funções
Podemos alterar os intervalos assim (por exemplo x entre 0 e 5, y entre -3 e 3)

            gnuplot> set xrange [0:5]
            gnuplot> set yrange [-3:3]

7. Ativar a grade

           gnuplot> set grid
           gnuplot> replot

8. Desligar a grade

           gnuplot> unset grid
           gnuplot> replot

9. Passar a coordenadas polares (atenção é uma representação x,y de um gráfico polar (theta,rho=f(theta))

           gnuplot> set title "GRAFICO POLAR"  ! trocar título
           gnuplot> set polar
           gnuplot> plot t
           gnuplot> set trange [0:4*pi] ! mudamos o intervalo do t (variável de ângulo theta)
           gnuplot> replot
           gnuplot> set size square     ! fazer o gráfico quadrado
           gnuplot> replot

10. Salvar a sessão num arquivo

           gnuplot> save "test1.gnu"    ! o .gnu é só por conveniência

11. Sair do Gnuplot

           gnuplot> quit

12. Conferir se foi gravado (fora do Gnuplot, na tela de comandos) e recarregar depois

           $ ls -l *.gnu
           $ gnuplot  ! para entrar de novo
           gnuplot> load "test1.gnu"
           gnuplot> replot

13. Experimente mais (e interprete o resultado):

           gnuplot> plot sin(t)
           gnuplot> plot cos(t)
           gnuplot> plot sin(t), cos(t)
           gnuplot> plot sin(t)*cos(t)
           gnuplot> quit

14. Graficando dados

   1. Crie um arquivo de dados (x,y) com a relacao y=x² entre -5 e 5 e 100 pontos (use 'seq' e 'awk')
   2. Grafique os dados (ex: x2.dat) no gnuplot
           $ gnuplot
           gnuplot> plot "x2.dat"
                

15. Graficando com linha em lugar de pontos

           gnuplot> plot "x2.dat" with line    ! o with line pode ser abreviado para w l
           gnuplot> set style data linespoints ! isto deixa o estilo linha e pontos fixo
           gnuplot> replot

16. Mudando para linha sem pontos

           gnuplot> set style data lines
           gnuplot> replot

17. Escala logarítmica (os dois eixos)

           gnuplot> set log
           gnuplot> replot

18. Voltar a escala linear

           gnuplot> unset log

19. Trocar X com Y

           gnuplot> plot "x2.dat" using 2:1 ! pode ser abreviado para u 2:1)

20. Salvar eps colorido (imprimir ou incluir em LaTex)

           gnuplot> set term postscript enhanced color   !formato postscript colorido e de qualidade
           gnuplot> set output "x2.eps"
           gnuplot> replot

21. Salvar eps em tons de cinza

           gnuplot> set term postscript enhanced monochrome
           gnuplot> set output "x2.eps"
           gnuplot> replot

22. Se queremos o gráfico para inserir num relatório, pode se perceber depois da primeira tentativa que as fontes, --isto é números e textos que aparecem dentro do gráfico-- ficam muito pequenas no fim. Isto pode ser facilmente concertado com o seguinte truque. Antes de mudar o terminal e a saída, ou seja antes dos passos 20 ou 21, fazer:

            gnuplot> set size 0.5
            gnuplot> replot

Isso escala todo o gráfico num fator 1/2, mas mantendo o tamanho das fontes. O efeito no relatório será o de ver as fontes e símbolos aumentados num fator 2.

23. Após produzir a saída postscript (eps) se quiseres voltar a usar o GNUPLOT normalmente faça

           gnuplot> set output
           gnuplot> set terminal x11

24. Desabilitar a legenda do gráfico

           gnuplot> set nokey

Ajuste de curvas (fit)

Definir uma função

gnuplot> f(x) = a + b*x

Utiliza-la para o ajuste dos dados

gnuplot> fit f(x) "x.dat" via a,b

Resultado:

...
After 6 iterations the fit converged.
final sum of squares of residuals : 3.76358e-28
rel. change during last iteration : 0

degrees of freedom    (FIT_NDF)                        : 98
rms of residuals      (FIT_STDFIT) = sqrt(WSSR/ndf)    : 1.95969e-15
variance of residuals (reduced chisquare) = WSSR/ndf   : 3.84039e-30

Final set of parameters            Asymptotic Standard Error
=======================            ==========================

a               = 10               +/- 3.89e-16     (3.89e-15%)
b               = -3               +/- 6.789e-17    (2.263e-15%)


correlation matrix of the fit parameters:

               a      b
a               1.000
b              -0.864  1.000

Graficando dados e ajuste

gnuplot> plot "x.dat", f(x)

Lista de Funções

Se alguém pode arrumar vou agradecer!

Function (Arguments) Returned value

abs(x)  -> valor absoluto de x
acos(x) -> arccosine em radianos 
 arg(x) (complex)
    the phase of x in radians 
asin(x) (any)
    arcsin in radians 
atan(x) (any)
    arctangent in radians 
besj0(x) (radians)
    j_0 bessel function of x 
besj1(x) (radians)
    j_1 bessel function of x 
besy0(x) (radians)
    y_0 bessel function of x 
besy1(x) (radians)
    y_1 bessel function of x 
ceil(x) (any)
    smallest integer not less than real (x) 
cos(x) (radians)
    cosine x 
cosh(x) (radians)
    hyperbolic cosine x 
erf(x) (any )
    Erf(real(x)), error function of real(x) 
erfc(x) (any)
    Erfc(real(x)), 1.0 - error function of real(x) 
exp(x) (any)
    exponential function of x 
floor(x) (any)
    largest integer not greater than real(x) 
gamma(x) (any)
    gamma function of real (x) 
ibeta(p,q,x) (any)
    ibeta function of real(p,q,x) 
igamma(a,x) (any)
    igamma function of real(a,x) 
imag(x) (complex)
    imaginary part of x 
invnorm(x) (any)
    inverse normal distribution function of real(x) 
int(x) (real)
    real integer part of x 
lgamma(x) (any)
    lgamma function of real(x) 
log(x) (any)
    natural logarithm of x 
log10(x) (any)
    logarithm base 10 of x 
norm(x) (any)
    normal distribution (Gaussian) function of real(x) 
rand(x) (any)
    pseudo random number generator 
real(x) (any)
    real part of x 
sgn(x) (any)
    1 if x > 0, -1 if x < 0 , 0 if x = 0 (real part) 
sin(x) (radians)
    sine x 
sinh(x) (radians)
    hyperbolic sine x 
sqrt(x) (any)
    square root of x 
tan(x) (radians)
    tangent of x 
tanh(x) (radians)
    hyperbolic tangent of x

Links

FAQS