Gnuplot: mudanças entre as edições
(Criou página com '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 grafi...') |
|||
Linha 145: | Linha 145: | ||
gnuplot> replot | gnuplot> replot | ||
21. Se queremos o gráfico para inserir num relatório, pode se perceber depois da primeira tentativa que as fontes, | 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 | --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 | 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> set size 0.5 | ||
Linha 154: | Linha 160: | ||
aumentados num fator 2. | 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 output | ||
gnuplot> set terminal x11 | gnuplot> set terminal x11 | ||
24. Desabilitar a legenda do gráfico | |||
gnuplot> set nokey | |||
== Ajuste de curvas (fit) == | == Ajuste de curvas (fit) == |
Edição das 18h26min de 19 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'
Exercícios
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