Vous êtes sur la page 1sur 20

Introdu c ao ao GNUPLOT

Prof. Ricardo Reis 22 de fevereiro de 2011

Introdu c ao

Gnuplot e um software livre para desenho (plotagem) de fun c oes em duas e tr es dimens oes (2D e 3D). A u ltima vers ao est avel at e a escrita deste documento e a 4.4.0. Vers oes em bin ario (pronto para instala c ao) e em c odigo fonte (precisam ser compiladas e depois montadas no sistema) tanto para windows como para linux est ao dispon veis no endere co http://sourceforge.net/projects/gnuplot/files/ (na parte inferior do site e poss vel fazer o download da vers ao que condiz com seu sistema).

Prompt de Entrada

Depois de instalado o gnuplot poder a ser executado. Se o sistema criar um cone de atalho basta acion a-lo com o mouse. Do contr ario uma janela de terminal (modo de entrada onde as a c oes s ao dadas digitando-se comandos) dever a ser executada (no linux h a atalhos nos menus do sistema no Ubuntu utilize AplicativosAcess oriosTerminal e no Windows use iniciarexecutar e digite cmd depois OK). O gnuplot dever a ser executado digitando-se gnuplot no terminal aberto, como no exemplo (linux), $ gnuplot No Windows existe uma vers ao .zip que, ap os descompactada, est a pronta para uso. Basta ir na subpasta binary e clicar em gnuplot.exe. Em qualquer caso uma janela de terminal abrir a e exibir a um conte udo semelhante a,

G N U P L O T Version 4.4 patchlevel 0 last modified March 2010 System: Linux 2.6.32-24-generic Copyright (C) 1986-1993, 1998, 2004, 2007-2010 Thomas Williams, Colin Kelley and many others gnuplot home: faq, bugs, etc: immediate help: plot window: http://www.gnuplot.info type "help seeking-assistance" type "help" hit h

Terminal type set to wxt gnuplot> Au ltima linha, gnuplot>, e denominada prompt de entrada e aguarda por entrada do usu ario. Quando uma entrada est a completa pressiona-se ENTER, gnuplot executa a a c ao e volta para o prompt para aguardar nova entrada. Exemplo, gnuplot> plot sin(x) gnuplot> A entrada plot sin(x) e dada e depois de executada o gnuplot volta, na linha seguinte, para o prompt onde nova entrada ser a aguardada. Um terminal gr aco abrir a noutra janela e exibir a o gr aco ao lado.

Terminais Gr acos

Chama-se terminal gr aco a janela auxiliar que o gnuplot abre para exibir um gr aco. H a tantos terminais gr acos dispon veis em sua m aquina quanto forem instalados (o gnuplot instala alguns para voc e). Para visualizar uma lista completa de terminais gr acos digite, set term Isso exibir a uma lista dos terminais gr acos dispon veis. Normalmente o terminal gr aco padr ao do gnuplot e o wxt. Esta informa c ao e exibida quando voc e executa o gnuplot (veja na listagem anterior), Terminal type set to wxt Para saber detalhes do terminal ativo digite test e veja o que aparece na sa da gr aca.

Plotando Gr acos em 2D

O nome padr ao da vari avel independente em gnuplot e x. Assim para plotar um gr aco a partir de uma fun c ao, deve-se usar um nome de fun c ao v alida com argumento x. As principais fun c oes matem aticas do gnuplot s ao listadas na tabela a seguir,

Fun c ao abs(x) acos(x) asin(x) atan(x) cos(x) cosh(x) erf(x) exp(x) inverf(x) invnorm(x) log(x) log10(x) norm(x) rand(x) sgn(x) sin(x) sinh(x) sqrt(x) tan(x) tanh(x)

Retorna valor absoluto de x arco-cossenno de x arco-sene de x arco-tangente de x cosseno de x, x em radianos. cosseno hiperb olico de x, x em radianos fun cao erro de x exponencial de x, base e erro inverso de x distribui c ao inversa normal de x log de x, base e log de x, base 10 distribui c ao normal Gaussiana de x gerador de n umeros pseudo-aleat orios 1 se x > 0, -1 se x < 0, 0 se x = 0 seno de x, x em radianos seno hiperb olico de x, x em radianos raiz quadrada de x tangente de x, x em radianos tangente hiperb olica de x, x em radianos

O comando gnuplot para plotagem 2D e plot. Por exemplo, para plotar a fun c ao seno usa-se, gnuplot> plot sin(x) gnuplot> 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -10

sin(x)

-5

10

isso desenhar a no terminal gr aco a fun c ao seno. Para alterar o dom nio de plotagem (intervalo nas abcissas onde dever a ser plotada a fun c ao), utiliza-se um par de colchetes contendo respectivamente os limites inferior e superior de abcissas, separados por dois-pontos. Para plotar, por exemplo, o seno entre 0 e faz-se, gnuplot> plot [0:pi] sin(x) gnuplot>

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.5 1 1.5 2

sin(x)

2.5

onde pi e o valor de no gnuplot. A sa da e mostrada na gura ao lado. H a algumas situa c oes em que o intervalo nas ordenadas precisa tamb em ser especicado. Neste caso utiliza-se outro par de colchetes seguidos do p rimeiro utilizando a mesma sintaxe j a apresentada. No exemplo, gnuplot> plot [-10:10] [-3:3] x*x gnuplot> 3 2 1 0 -1 -2 -3 -10 -5 0 5 10 x*x

o intervalo nas abcissas restringe-se entre -10 e 10 ao passo que nas ordenadas entre -3 e 3. Caso se deseje identicar apenas o intervalo nas ordenadas deve-se dispor tamb em os colchetes referentes ` as abcissas, mas neste caso sem limites, como no exemplo, gnuplot> plot [:] [-3:3] x*x gnuplot> Para desenhar mais de uma fun c ao em gnuplot, separe as fun c oes por v rgula. Exemplo, gnuplot> plot [-10:10] x**2 + 5*x - 4, 9*x-11 gnuplot>

150 100 50 0 -50 -100 -150 -10 -5 0 5 10 x**2+5*x-4 9*x-11

onde ** e o operador de pot encia. S ao operadores aritm eticos legais em gnuplot, Operador + / % * O Que Faz Soma Subtra c ao Multiplica c ao Divis ao Resto de divis ao de inteiros Pot encia

O resultado do exemplo anterior ser a a plotagem das fun c oes f (x) = x2 + 5x 4 e g (x) = 9x 11 e no intervalo de -10 a 10.

Estilos de Curvas

Cada curva plotada em gnuplot possui um estilo. Um estilo e em geral formado por um conjunto de propriedades gr acas que incluem, para o caso de curvas, cor, espessura, tamanho e forma dos pontos, padr ao de linha e etc. Usando o comando test e poss vel ver, para o terminal vigente, os valores de espessura, padr oes de linha, cores e formas de pontos dispon veis. Consideraremos neste artigo apenas a cor e a espessura das curvas. Para modicar a cor de uma curva use os modicadores linecolor (ou simplesmente lc) e rgb em sequencia seguidos de um valor de cor v alida entre aspas duplas. Exemplo, gnuplot> plot [0:5] exp(x) lc rgb "red"

160 140 120 100 80 60 40 20 0 0 1 2 3

exp(x)

A fun c ao e plotada com linha de cor vermelha. Para ver a lista de cores dispon veis no gnuplot use, gnuplot> show colornames Cada cor desta lista e apresentada com seu equivalente em hexadecimal (inicia com #) e podem ser utilizadas com mesmo efeito. O modicar de espessura de linha e linewidth (ou simplesmente lw). Ele e seguido do ndice de espessura (n ao do valor!) oferecido pelo terminal gr aco (use o comando test e veja os valores de ndice v alidos). Por exemplo, para plotar a fun c ao no intervalo de 10 a 100, com cor azul e espessura de ndice 4 use, gnuplot> plot [10:100] log(5*x-7) lc rgb "blue" lw 4 gnuplot> 6.5 6 5.5 5 4.5 4 3.5 10 20 30 40 50 60 70 80 90 100

log(5*x-7)

Caso mais de um gr aco esteja presente, deve-se denir os estilos um a um. Se caso uma das fun c oes listadas n ao especique o estilo, o gnuplot utilizar a o padr ao. Veja o exemplo, gnuplot> plot [3:10] 1/(x**2-1) lc rgb "blue" lw 4, x/20 lc rgb "red" lw 3

0.5 0.45 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 3 4 5 6 7

1/(x**2-1) x/20

10

isto plota duas fun c oes respectivamente com cores azul e vermelha e espessuras de ndices 4 e 3. Caso se queira um estilo comum de linha para todas as curvas, existe a op c ao de denir um estilo pr oprio e depois aplic a-lo ` as curvas. Para denir um novo estilo de linha use o esquema geral, set style line < ndice> <op c~ oes do estilo> o valor de ndice e um n umero denido pelo usu ario e e usado para invocar o estilo quando a plotagem for solicitada. As op c oes de estilo incluem espessura, cor, tamanho e forma de pontos, padr ao de linha entre outras. A deni c ao de um estilo passa a valer a partir do ponto que ele e denido. Para invocar um estilo novo, use linestyle (ou simplesmente ls) seguido do ndice denido anteriormente. Exemplo, gnuplot> set style line 7 lw 3 lc rgb "blue" gnuplot> plot sin(x) ls 7, cos(x) ls 7 gnuplot> 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -10 sin(x) cos(x)

-5

10

Isso dene um estilo de linha de ndice 7 e atribui a ele cor azul e espessura de ndice 4. Os gr acos plotados logo em seguida invocam com ls 7 (cada um!) o estilo denido.

Congurando com set

O comando set tem sido usado sem maiores explica c oes. De fato ele tem larga aplica c ao no gnuplot congurando estados do programa antes de realizar uma plo7

tagem. Usando help set o gnuplot imprime uma lista de entidades que podem ser conguradas por set. Para desfazer uma a c ao de set usa-se o comando unset. A seguir apresentamos a congura c ao de algumas entidades com set/unset.

6.1

set title, set xlabel, set ylabel

Caso o gr aco precise de um t tulo utiliza-se set title. No exemplo, gnuplot> set title "minha funcao" gnuplot> plot x**2-1 gnuplot> minha funcao 100 90 80 70 60 50 40 30 20 10 0 -10 -10 x**2-1

-5

10

o t tulo minha funcao e impresso no topo do gr aco. Similarmente r otulos podem ser denidos para os eixos coordenados x e y respectivamente utilizando set xlabel e set ylabel. No exemplo, gnuplot> gnuplot> gnuplot> gnuplot> gnuplot> set title "crescimento de bacterias" set xlabel "t(s)" set ylabel "Q(g)" plot [0:6] 0.3*exp(x)

crescimento de bacterias 140 120 100 80 Q(g) 60 40 20 0 0 1 2 3 t(s) 0.3*exp(x)

6.2

set angles

O padr ao de angulos em gnuplot e radianos. Para mudar para graus use set angles degrees. Para trazer de volta, use unset angles ou set angles radians. Veja o exemplo, gnuplot> set angles degrees gnuplot> print sin(90) 1.0 gnuplot> unset angles gnuplot> print sin(90) 0.893996663600558 gnuplot> print sin(pi/2) 1.0 gnuplot> onde print e um comando de impress ao de qualquer valor num erico ou texto dentro do gnuplot (voc e expressa texto em gnuplot colocando-o entre aspas duplas. Exemplo, print \ola mundo", imprimir a ol a mundo).

6.3

set size

As plotagens no terminal gr aco acontecem dentro de uma area restrita por um ret angulo que cont em marcas num ericas em duas de suas quatro bordas e que indicam valores nas abcissas e ordenadas das fun c oes plotadas. A propor c ao entre a altura e a largura deste ret angulo, conhecido como aspect-ratio, se mant em quando a janela e redimensionada impedindo a deforma c ao do gr aco. O valor padr ao de aspect-ratio e de 1 para 1 (aspect-raio = 1/1 = 1). O aspect-ratio pode entretanto ser modicado utilizando set size. Utilize set size square para aplicar o aspect-rato padr ao (square, signica quadrado cuja a propor c ao de dimens oes e de 1 para 1). Para valores personalizados de aspect-ratio deve ser usada uma raz ao de propor c ao da altura pelo comprimento do ret angulo que poder a ser fornecida de duas formas. Primeiro como fra c ao onde o numerador e o denominador s ao fornecidos separados por v rgulas. Exemplo, gnuplot> set size 2, 5 gnuplot> Isso causar a ao ret angulo de plotagem propor c ao de 2 para 5 entre altura e largura. Na segunda forma usa-se o modicador ratio seguido do valor de raz ao direta. O caso anterior pode ser reescrito como, gnuplot> set size ratio 0.4 gnuplot> haja vista que 2/5 = 0.4. Chamar unset size tem mesmo efeito que set size square.

6.4

set key

Gr acos em gnuplot mant em uma legenda contendo refer encias para cada curva plotada. Cada refer encia e formada por uma linha horizontal na cor da linha referenciada acompanhada da equa c ao da fun c ao. O comando set key congura legendas em gnuplot. Use help set key para ver todas as op c oes. Para desligar legendas use unset key ou set key off. Para reabilit a-las use set key on.

6.5

set multiplot

H a situa c oes em que gr acos distintos devem compartilhar a mesma janela cando vizinhos uns dos outros. Para fazer isso utilize set multiplot. Este comando dene um layout de c elulas que conter ao cada qual uma plotagem independente. A propor c ao que chamadas a plot v ao sendo realizadas (ap os deni c ao do layout), c elulas vazias v ao sendo preenchidas ate que a tela encha (novas chamadas a plot n ao t em mais onde plotar). Para limpar a tela deve-se encerrar o modo de multiplotagem usando unset multiplot e depois o comando clear. Para denir um layout de quantidade xa de linhas e colunas use o modicador layout do comando multiplot seguindo a sintaxe, set multiplot layout <numero de linhas>, <numero de colunas> No exemplo, gnuplot> set multiplot layout 3, 2 multiplot> plot [-pi:pi] x**2 multiplot> plot [-pi:pi] sin(x) multiplot> plot [-1:1] [-5:5] 1/x multiplot> plot [-1:1] [-5:5] x**3 multiplot> unset multiplot gnuplot> Inicializa o modo de multiplotagem com 3 linhas e 2 colunas (Observe que quando multiplot e chamado ocorre uma mudan ca do prompt gnuplot> para multiplot>). A sa da obtida e,

10

10 9 8 7 6 5 4 3 2 1 0 -3 4 2 0 -2 -4 -1 -0.5 0 -2 -1 0

x**2

1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 2 3 4 2 0 -2 -4 1 -1 -0.5 0 -3 -2 -1 0

sin(x)

1 1/x

1 x**3

0.5

0.5

As chamadas seguintes, multiplot> set style line 7 lw 3 lc rgb "blue" multiplot> plot [-pi:pi] x**2 ls 7, sin(x) ls 7 multiplot> plot [-1:1] [-5:5] 1/x ls 7, x**3 ls 7

10 8 6 4 2 0 -2 -3 -2 -1 0 1 2 3 -1 -0.5 0 x**2 sin(x) 4 2 0 -2 -4

1/x x**3

0.5

apesar de plotarem quatro curvas, s o usam duas c elulas. Isso ocorre poque apenas duas chamadas a plot s ao realizadas. Cada uma das duas c elulas utilizadas conter a duas curvas.

6.6

set parametric

Para habilitar o modo de uso de equa c oes param etricas use set parametric. Para deslig a-lo use unset parametric. Neste modo a vari avel independente e t (n ao e mais x!) e cada curva precisa de uma par de equa c oes (a primeira x(t) e a segunda y(t)). Por exemplo para plotar um c rculo em gnuplot use, gnuplot> set parametric

11

dummy variable is t for curves, u/v for surfaces gnuplot> plot sin(t), cos(t) gnuplot> 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 A mensagem exibida pelo gnuplot ap os a congura c ao do modo param etrico indica que a vari avel independente mudou de nome. Para plotar mais de uma curva em modo param etrico deve-se formar pares de fun c oes e formatar apenas a segunda de cada (caso um novo estilo seja necess ario). Exemplo, gnuplot> plot [-pi:pi] sin(t), cos(t) lc rgb "black", t**2, t lc rgb "black" gnuplot> 4 3 2 1 0 -1 -2 -3 -4 -2 0 2

sin(t), sin(t), cos(t)

sin(t), sin(t), cos(t) t**2, t**2, t

10

6.7

set polar

Para alternar para o modo polar use set polar. Para sair do modo polar use unset polar. No modo polar uma coordenada e marcada por uma valor de raio e

12

um angulo tra cados a partir da origem. O raio e a vari avel dependente e o angulo a independente (exemplo, r() = sin() denota uma fun c ao em coordenadas polares, onde r denota o raio e o angulo). A vari avel independente em gnuplot no modo polar e t. Para plotar uma rosa de tr es p etalas use, gnuplot> set polar dummy variable is t for curves gnuplot> plot sin(3*t) 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 sin(3*t)

1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1

Denindo Vari aveis e Fun c oes

Para denir uma vari avel em gnuplot basta atribuir um valor ao nome da nova vari avel. Exemplo, gnuplot> w = 45 gnuplot> a = 45 estas chamadas criam as vari aveis w e a. Vari aveis podem ser denidas tamb em a partir do valor de outras vari aveis j a denidas. Exemplo, gnuplot> max = 56.0 gnuplot> min = 24.4 gnuplot> med = (max+min)/2 gnuplot> Para saber o conte udo de uma vari avel j a denida, use print. Exemplo, gnuplot> print med 40.2 gnuplot> Para criar uma fun c ao em gnuplot deve-se denir um identicador, p os-x a-lo de um par de par enteses contendo as vari aveis independentes e por m igualar esta deni c ao a uma equa c ao que contenha como vari aveis apenas as vari aveis denidas. Exemplo, gnuplot> f(x) = sqrt(x**2 - 5) gnuplot> 13

Isso dene a fun c ao. Para plotar essa fun c ao use, gnuplot> plot f(x) ou gnuplot> plot [-10:10] f(x) lc rgb \green" lw 2 10 9 8 7 6 5 4 3 2 1 0 -10

f(x)

-5

10

Apesar de x ser o identicador padr ao para vari avel independente, a deni c ao de uma fun c ao pode lidar com qualquer identicador, como em, gnuplot> f(a) = sqrt(a**2 - 5) gnuplot> Entretanto para plotar a fun c ao deve-se chamar plot f(x) o que far a x tomar o valor de a. N ao esque ca que o gnuplot dene x como vari avel independente e e ele quem deve estar presente na express ao nal da fun c ao a ser plotada. Para denir uma fun c ao de mais de uma vari avel, liste-as entre os par enteses da deni c ao da fun c ao separando-as por v rgulas. Exemplo, gnuplot> pot(a,b) = exp( b*log(a) ) gnuplot> Isso dene a fun c ao pot. Para testar a nova fun c ao use, gnuplot> print pot(2, 3) 8.0 gnuplot> Para construir um plot 2D com fun c oes de mais de uma vari avel independente devese naturalmente repassar o x para apenas um dos argumentos e os demais devem receber valores constantes. No exemplo, gnuplot> pot(a,b) = exp(b*log(a)) gnuplot> pset style line 9 lw 3 lc rgb "red" gnuplot> plot pot(2.0, x) ls 9, pot(x, 2) ls 9 as fun c oes plotadas s ao respectivamente 2x e x2 .

14

1200 1000 800 600 400 200 0 -10 -5

pot(2.0, x) pot(x, 2)

10

Operador Tern ario de Decis ao

O operador tern ario ?: (a interroga c ao e os dois-pontos constituem este operador) no gnuplot permite construir estruturas condicionais. Ele forma uma express ao de tr es termos de modelo geral, <exp1> ? <exp2> : <exp3> Caso o resultado de exp1 (que deve sempre resultar em verdadeiro ou falso) seja verdadeiro, o resultado nal da express ao como um todo ser a exp2 e do contr ario exp3. No exemplo, gnuplot> w = 45 gnuplot> q = w>10 ? 9 : 11 gnuplot> print q 9 gnuplot> a express ao w>10 retorna verdadeiro pois w foi inicializado com 45. Da q recebe 9 e n ao 11. O operador >(maior que) e denominado um operador relacional e w>10 uma express ao relacional (porque vale verdadeiro ou falso). Os operadores relacionais do gnuplot s ao, operador > < >= <= == != signicado maior que menor que maior ou igual menor ou igual igual diferente

O operador ?: tamb em pode ser usado em deni c oes de fun c oes em partes. Para denir a fun c ao em parte, x x < 0 f (x) = x2 x 0 use,

15

gnuplot> f(x) = x<0 ? -x : x**2 gnuplot> plot [-5:5] f(x) gnuplot> 25 20 15 10 5 0 -4 -2 0 2 4

f(x)

isso plotar a um gr aco que e parcialmente linha, parcialmente par abola. Se mais que duas c oes comporem a fun c ao em partes, como em, equa x < 5 10 2x 2 25 x 5 x5 f (x) = x5 x>5 use associa c oes do operador ?:. A fun c ao h(x) anterior e plotada usando, gnuplot> set key off gnuplot> h(x) = x<-5 ? -10-2*x: (x<=5 ? 25-x**2 : 8*sqrt(x-5)) gnuplot> plot [-10:10] [-10:30] h(x) lc rgb "black" lw 2 30 25 20 15 10 5 0 -5 -10 -10

-5

10

Usando La cos

Considere a fun c aoque deve ser plotada para oito valores de a distintos e equidistan1 tes no intervalo {2, 25}. Estes oito valores podem ser obtidos por a(i) = 2 + 3 i 7 , onde i e um inteiro no intervalo {1, 8}. Desta forma as oito curvas se distinguir ao unicamente por um valor de i e poder ao ser plotadas num la co de contagem. A estrutura de uma plotagem com la co de contagem em gnuplot tem formato geral, plot for [<contador>=<minimo>:<maximo>] <funcao_de_x_e_do_contador> 16

Para plotar as oito curvas do modelo descrito anteriormente use, gnuplot> a(i) = 2.0 + 3.0*(i-1)/7 gnuplot> f(x,a) = a*x**2 - 5*x + 7 gnuplot> plot for [i=1:8] f(x, a(i) ) gnuplot> 600 500 400 300 200 100 0 -10 -5 0 5 10

lc rgb "black" lw 2

Apesar do identicador a ser usado na deni c ao da fun c ao a(i) e no segundo argumento de f(), tratam-se de coisas diferentes. Na plotagem propriamente dita, de contador i e limites 1 e 8, a chamada ` a f() invoca internamente a(i) para repassar seu valor ao argumento a. Remodelando as vari aveistem-se, gnuplot> a(i) = 2.0 + 3.0*(i-1)/7 gnuplot> f(u,c) = c*u**2 - 5*u + 7 gnuplot> plot for [i=1:8] f(x, a(i) ) lc rgb "black" lw 2 gnuplot> Cuja sa da gr aca e a mesam da listagem anterior.

10

Utilizando Arquivo Texto

Se um arquivo texto contiver dados formatados em linhas e colunas, ent ao ser a poss vel ao gnuplot fazer curvas tomando quaisquer uma das colunas como dados de abcissa e outra como dados de ordenada. Cada par tomado de dados de uma linha do arquivo texto ser a considerado um ponto da curva. Seja por exemplo o seguinte c odigo em C que gera um arquivo texto chamado saida.txt e contendo tr es colunas de dados num ericos tabuladas corretamente, #i n c l u d e < s t d i o . h> #i n c l u d e <math . h> #d e f i n e N 20 #d e f i n e XMIN 0 . 0 #d e f i n e XMAX 1 0 0 . 0 i n t main ( ) { FILE f p = f o p e n ( s a i d a . t x t , w ) ; int k ; f o r ( k =0; k<N ; k++) { 17

f l o a t x = XMIN + (XMAX XMIN) k / (N 1); float y = sqrt (x ); f p r i n t f ( fp , %.3 f \ t %.3 f \ t %.3 f \ n , x , y , x y ) ; } f c l o s e ( fp ) ; } As dez primeiras linhas do arquivo saida.txt t em aspecto como segue, 0.000 0.000 0.000 5.263 2.294 12.075 10.526 3.244 34.152 15.789 3.974 62.741 21.053 4.588 96.596 26.316 5.130 134.997 31.579 5.620 177.458 36.842 6.070 223.623 42.105 6.489 273.215 47.368 6.882 326.012 ... Copie este aquivo para a pasta a partir de onde o gnuplot e executado ou execute o gnuplot estando na pasta onde ele (saida.txt) foi gerado. Isso dar a ao gnuplot acesso direto a saida.txt. Para plotar uma curva que use abcissas da primeira coluna e como ordenadas a segunda coluna use, gnuplot> plot "saida.txt" using 1:2 gnuplot> 10 8 6 4 2 0+ 0 + + + + + + + + ++ ++ + ++ ++ ++

20

40

60

80

100

O nome do arquivo segue plot entre aspas e o modicador using indica as duas colunas (separadas por dois-pontos) que devem ser usadas. Se houvesse ai using 2:3, seriam usadas respectivamente para abcissas e ordenadas, dados das colunas 2 e 3. Se apenas uma coluna e fornecida, como em using 2, ela ser a tomada como dados de ordenada ao passo que as abcissas ser ao os inteiros naturais (0, 1, 2, 3, ...). H a situa c oes em que os dados n ao bastam para criar as curvas sendo necess ario ainda process a-los. Por exemplo, suponha que, utilizando o arquivo saida.txt, desejemos plotar o dobro de cada valor da primeira coluna pelo triplo da segunda. 18

Neste caso deve-se transformar as colunas argumentos de using em express oes avaliativas que rendam os valores desejados. Uma express ao avaliativa est a sempre entre par enteses e manipula o valor de uma dada coluna pr e xando seu ndice com $. O exemplo citado ent ao ca, gnuplot> plot "saida.txt" using (2*$1):(3*$2) gnuplot> 30 25 20 15 10 5 0+ 0 + + + + + + ++ + ++ ++ ++ +

+ ++

50

100

150

200

N ao h a restri c oes nas express oes avaliativas sendo inclusive poss vel operar entre colunas. No exemplo, gnuplot> plot "saida.txt" using ($1):( ($2+$3)/2 ) gnuplot> as abcissas s ao valores da primeira coluna ao passo que as ordenadas s ao os valores m edios entre os dados da segunda e terceira coluna. Naturalmente a express ao using 1:2 e equivalente a using ($1):($2). Assim a nota c ao com par enteses e $ s o e realmente interessante quando processamento adicional e requerido. O padr ao de curvas com fun c oes utiliza linhas ao passo que dados de arquivos s ao entretanto poss plotados com pontos (pequenas cruzes). E vel mudar estes padr oes usando o modicador with. Por exemplo, para plotar uma curva em linha dos dados do arquivo saida.txt use, gnuplot> plot "saida.txt" using 1:3 with lines gnuplot> 1000 800 600 400 200 0 0 20 40 60 80 100

19

De forma similar pode-se obrigar fun c oes a usarem pontos como em, gnuplot> plot cos(s) with points gnuplot> + + + + + + 1 + + + + + + + + + + + + 0.8 + + + + + + + + + + + + 0.6 + + + + + + 0.4 + + + + + + 0.2 + + + + + + 0 + + + + + + -0.2 + + + + + + -0.4 + + + + + + -0.6 + + + + + + ++ -0.8 + + + ++ ++ + + + + + + + + + + + + + + + + + + -1 + -10 -5 0 5 10

11

Usando Ajuda do Gnuplot

Para obter mais detalhes sobre os recursos apresentados neste artigo, e outras cetenas mais que n ao mencionamos aqui, use o comando help. Ele deve ser escrito acompanhado do comando que se deseja um maior detalhamento. Poe exemplo chamar, gnuplot> help set lista a ajuda de set e mostra todos os itens que ele pode congurar. Para detalhamento de algum deles basta digit a-lo ou chamar diretamente no prompt, gnuplot> help set angles A maioria dos comandos aqui cont em algum material de ajuda (help plot, help linecolor, help with, help using e etc). Um tutorial completo do gnuplot est a dispon vel em ingl es no endere co, http://www.gnuplot.info/docs/gnuplot.html

20

Vous aimerez peut-être aussi