Introdução do GNUPlot

download Introdução do GNUPlot

of 20

Transcript of Introdução do GNUPlot

  • Introducao ao GNUPLOT

    Prof. Ricardo Reis

    22 de fevereiro de 2011

    1 Introducao

    Gnuplot e um software livre para desenho (plotagem) de funcoes em duas e tres di-mensoes (2D e 3D). A ultima versao estavel ate a escrita deste documento e a 4.4.0.Versoes em binario (pronto para instalacao) e em codigo fonte (precisam ser com-piladas e depois montadas no sistema) tanto para windows como para linux estaodisponveis no endereco http://sourceforge.net/projects/gnuplot/files/(na parte inferior do site e possvel fazer o download da versao que condiz com seusistema).

    2 Prompt de Entrada

    Depois de instalado o gnuplot podera ser executado. Se o sistema criar um cone deatalho basta aciona-lo com o mouse. Do contrario uma janela de terminal (modo deentrada onde as acoes sao dadas digitando-se comandos) devera ser executada (no li-nux ha atalhos nos menus do sistema no Ubuntu utilize AplicativosAcessoriosTerminal e no Windows use iniciarexecutar e digite cmd depois OK). O gnuplot deveraser executado digitando-se gnuplot no terminal aberto, como no exemplo (linux),

    $ gnuplot

    No Windows existe uma versao .zip que, apos descompactada, esta pronta parauso. Basta ir na subpasta binary e clicar em gnuplot.exe. Em qualquer casouma janela de terminal abrira e exibira um conteudo 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: http://www.gnuplot.info

    faq, bugs, etc: type "help seeking-assistance"

    immediate help: type "help"

    plot window: hit h

    1

  • Terminal type set to wxt

    gnuplot>

    A ultima linha, gnuplot>, e denominada prompt de entrada e aguarda por entradado usuario. Quando uma entrada esta completa pressiona-se ENTER, gnuplotexecuta a acao 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 linhaseguinte, para o prompt onde nova entrada sera aguardada. Um terminal graficoabrira noutra janela e exibira o grafico ao lado.

    3 Terminais Graficos

    Chama-se terminal grafico a janela auxiliar que o gnuplot abre para exibir um grafico.Ha tantos terminais graficos disponveis em sua maquina quanto forem instalados (ognuplot instala alguns para voce). Para visualizar uma lista completa de terminaisgraficos digite,

    set term

    Isso exibira uma lista dos terminais graficos disponveis. Normalmente o terminalgrafico padrao do gnuplot e o wxt. Esta informacao e exibida quando voce executao gnuplot (veja na listagem anterior),

    Terminal type set to wxt

    Para saber detalhes do terminal ativo digite test e veja o que aparece na sadagrafica.

    4 Plotando Graficos em 2D

    O nome padrao da variavel independente em gnuplot e x. Assim para plotar umgrafico a partir de uma funcao, deve-se usar um nome de funcao valida comargumento x. As principais funcoes matematicas do gnuplot sao listadas na tabelaa seguir,

    2

  • Funcao Retornaabs(x) valor absoluto de xacos(x) arco-cossenno de xasin(x) arco-sene de xatan(x) arco-tangente de xcos(x) cosseno de x, x em radianos.cosh(x) cosseno hiperbolico de x, x em radianoserf(x) funcao erro de xexp(x) exponencial de x, base einverf(x) erro inverso de xinvnorm(x) distribuicao inversa normal de xlog(x) log de x, base elog10(x) log de x, base 10norm(x) distribuicao normal Gaussiana de xrand(x) gerador de numeros pseudo-aleatoriossgn(x) 1 se x > 0, -1 se x < 0, 0 se x = 0sin(x) seno de x, x em radianossinh(x) seno hiperbolico de x, x em radianossqrt(x) raiz quadrada de xtan(x) tangente de x, x em radianostanh(x) tangente hiperbolica de x, x em radianos

    O comando gnuplot para plotagem 2D e plot. Por exemplo, para plotar a funcaoseno usa-se,

    gnuplot> plot sin(x)

    gnuplot>

    -1-0.8-0.6-0.4-0.2

    00.20.40.60.8

    1

    -10 -5 0 5 10

    sin(x)

    isso desenhara no terminal grafico a funcao seno. Para alterar o domnio de plo-tagem (intervalo nas abcissas onde devera ser plotada a funcao), utiliza-se um parde colchetes contendo respectivamente os limites inferior e superior de abcissas,separados por dois-pontos. Para plotar, por exemplo, o seno entre 0 e pi faz-se,

    gnuplot> plot [0:pi] sin(x)

    gnuplot>

    3

  • 00.10.20.30.40.50.60.70.80.9

    1

    0 0.5 1 1.5 2 2.5 3

    sin(x)

    onde pi e o valor de pi no gnuplot. A sada e mostrada na figura ao lado.

    Ha algumas situacoes em que o intervalo nas ordenadas precisa tambem ser especi-ficado. Neste caso utiliza-se outro par de colchetes seguidos do p rimeiro utilizandoa mesma sintaxe ja 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 identificar apenas o intervalo nas ordenadas deve-se disportambem os colchetes referentes a`s abcissas, mas neste caso sem limites, como noexemplo,

    gnuplot> plot [:] [-3:3] x*x

    gnuplot>

    Para desenhar mais de uma funcao em gnuplot, separe as funcoes por vrgula.Exemplo,

    gnuplot> plot [-10:10] x**2 + 5*x - 4, 9*x-11

    gnuplot>

    4

  • -150

    -100

    -50

    0

    50

    100

    150

    -10 -5 0 5 10

    x**2+5*x-49*x-11

    onde ** e o operador de potencia. Sao operadores aritmeticos legais em gnuplot,

    Operador O Que Faz+ Soma- Subtracao

    Multiplicacao/ Divisao% Resto de divisao de inteiros* Potencia

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

    5 Estilos de Curvas

    Cada curva plotada em gnuplot possui um estilo. Um estilo e em geral formadopor um conjunto de propriedades graficas que incluem, para o caso de curvas, cor,espessura, tamanho e forma dos pontos, padrao de linha e etc. Usando o comandotest e possvel ver, para o terminal vigente, os valores de espessura, padroes delinha, cores e formas de pontos disponveis. Consideraremos neste artigo apenas acor e a espessura das curvas.Para modificar a cor de uma curva use os modificadores linecolor (ou simplesmentelc) e rgb em sequencia seguidos de um valor de cor valida entre aspas duplas.Exemplo,

    gnuplot> plot [0:5] exp(x) lc rgb "red"

    5

  • 020

    40

    60

    80

    100

    120

    140

    160

    0 1 2 3 4 5

    exp(x)

    A funcao e plotada com linha de cor vermelha. Para ver a lista de cores disponveisno 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 modificar de espessura de linha e linewidth (ou simplesmente lw). Ele e seguido dondice de espessura (nao do valor!) oferecido pelo terminal grafico (use o comandotest e veja os valores de ndice validos). Por exemplo, para plotar a funcao nointervalo 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>

    3.5

    4

    4.5

    5

    5.5

    6

    6.5

    10 20 30 40 50 60 70 80 90 100

    log(5*x-7)

    Caso mais de um grafico esteja presente, deve-se definir os estilos um a um. Secaso uma das funcoes listadas nao especifique o estilo, o gnuplot utilizara o padrao.Veja o exemplo,

    gnuplot> plot [3:10] 1/(x**2-1) lc rgb "blue" lw 4, x/20 lc rgb "red" lw 3

    6

  • 00.05

    0.10.15

    0.20.25

    0.30.35

    0.40.45

    0.5

    3 4 5 6 7 8 9 10

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

    isto plota duas funcoes respectivamente com cores azul e vermelha e espessuras dendices 4 e 3.Caso se queira um estilo comum de linha para todas as curvas, existe a opcao dedefinir um estilo proprio e depois aplica-lo a`s curvas. Para definir um novo estilo delinha use o esquema geral,

    set style line

    o valor de ndice e um numero definido pelo usuario e e usado para invocar oestilo quando a plotagem for solicitada. As opcoes de estilo incluem espessura, cor,tamanho e forma de pontos, padrao de linha entre outras. A definicao de um estilopassa a valer a partir do ponto que ele e definido. Para invocar um estilo novo, uselinestyle (ou simplesmente ls) seguido do ndice definido 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

    00.20.40.60.8

    1

    -10 -5 0 5 10

    sin(x)cos(x)

    Isso define um estilo de linha de ndice 7 e atribui a ele cor azul e espessura dendice 4. Os graficos plotados logo em seguida invocam com ls 7 (cada um!) oestilo definido.

    6 Configurando com set

    O comando set tem sido usado sem maiores explicacoes. De fato ele tem largaaplicacao no gnuplot configurando estados do programa antes de realizar uma plo-

    7

  • tagem. Usando help set o gnuplot imprime uma lista de entidades que podemser configuradas por set. Para desfazer uma acao de set usa-se o comando unset.A seguir apresentamos a configuracao de algumas entidades com set/unset.

    6.1 set title, set xlabel, set ylabel

    Caso o grafico precise de um ttulo utiliza-se set title. No exemplo,

    gnuplot> set title "minha funcao"

    gnuplot> plot x**2-1

    gnuplot>

    -100

    102030405060708090

    100

    -10 -5 0 5 10

    minha funcao

    x**2-1

    o ttulo minha funcao e impresso no topo do grafico. Similarmente rotulos po-dem ser definidos para os eixos coordenados x e y respectivamente utilizando setxlabel e set ylabel. No exemplo,

    gnuplot> set title "crescimento de bacterias"

    gnuplot> set xlabel "t(s)"

    gnuplot> set ylabel "Q(g)"

    gnuplot> plot [0:6] 0.3*exp(x)

    gnuplot>

    020406080

    100120140

    0 1 2 3 4 5 6

    Q(g)

    t(s)

    crescimento de bacterias

    0.3*exp(x)

    8

  • 6.2 set angles

    O padrao de angulos em gnuplot e radianos. Para mudar para graus use set anglesdegrees. Para trazer de volta, use unset angles ou set angles radians. Vejao 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 impressao de qualquer valor numerico ou textodentro do gnuplot (voce expressa texto em gnuplot colocando-o entre aspas duplas.Exemplo, print \ola mundo", imprimira ola mundo).

    6.3 set size

    As plotagens no terminal grafico acontecem dentro de uma area restrita por umretangulo que contem marcas numericas em duas de suas quatro bordas e que in-dicam valores nas abcissas e ordenadas das funcoes plotadas. A proporcao entre aaltura e a largura deste retangulo, conhecido como aspect-ratio, se mantem quandoa janela e redimensionada impedindo a deformacao do grafico. O valor padrao deaspect-ratio e de 1 para 1 (aspect-raio = 1/1 = 1). O aspect-ratio pode entre-tanto ser modificado utilizando set size. Utilize set size square para aplicaro aspect-rato padrao (square, significa quadrado cuja a proporcao de dimensoes ede 1 para 1). Para valores personalizados de aspect-ratio deve ser usada uma razaode proporcao da altura pelo comprimento do retangulo que podera ser fornecidade duas formas. Primeiro como fracao onde o numerador e o denominador saofornecidos separados por vrgulas. Exemplo,

    gnuplot> set size 2, 5

    gnuplot>

    Isso causara ao retangulo de plotagem proporcao de 2 para 5 entre altura e largura.Na segunda forma usa-se o modificador ratio seguido do valor de razao direta. Ocaso 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.

    9

  • 6.4 set key

    Graficos em gnuplot mantem uma legenda contendo referencias para cada curvaplotada. Cada referencia e formada por uma linha horizontal na cor da linha re-ferenciada acompanhada da equacao da funcao. O comando set key configuralegendas em gnuplot. Use help set key para ver todas as opcoes. Para desligarlegendas use unset key ou set key off. Para reabilita-las use set key on.

    6.5 set multiplot

    Ha situacoes em que graficos distintos devem compartilhar a mesma janela ficandovizinhos uns dos outros. Para fazer isso utilize set multiplot. Este comandodefine um layout de celulas que conterao cada qual uma plotagem independente. Aproporcao que chamadas a plot vao sendo realizadas (apos definicao do layout),celulas vazias vao sendo preenchidas ate que a tela encha (novas chamadas a plotnao tem mais onde plotar). Para limpar a tela deve-se encerrar o modo de multi-plotagem usando unset multiplot e depois o comando clear.Para definir um layout de quantidade fixa de linhas e colunas use o modificadorlayout do comando multiplot seguindo a sintaxe,

    set multiplot layout ,

    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 quandomultiplot e chamado ocorre uma mudanca do prompt gnuplot> para multiplot>).A sada obtida e,

    10

  • 0123456789

    10

    -3 -2 -1 0 1 2 3

    x**2

    -1-0.8-0.6-0.4-0.2

    00.20.40.60.8

    1

    -3 -2 -1 0 1 2 3

    sin(x)

    -4

    -2

    0

    2

    4

    -1 -0.5 0 0.5 1

    1/x

    -4

    -2

    0

    2

    4

    -1 -0.5 0 0.5 1

    x**3

    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

    -2

    0

    2

    4

    6

    8

    10

    -3 -2 -1 0 1 2 3

    x**2sin(x)

    -4

    -2

    0

    2

    4

    -1 -0.5 0 0.5 1

    1/xx**3

    apesar de plotarem quatro curvas, so usam duas celulas. Isso ocorre poque apenasduas chamadas a plot sao realizadas. Cada uma das duas celulas utilizadas conteraduas curvas.

    6.6 set parametric

    Para habilitar o modo de uso de equacoes parametricas use set parametric. Paradesliga-lo use unset parametric. Neste modo a variavel independente e t (nao emais x!) e cada curva precisa de uma par de equacoes (a primeira x(t) e a segunday(t)). Por exemplo para plotar um crculo 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

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

    A mensagem exibida pelo gnuplot apos a configuracao do modo parametrico indicaque a variavel independente mudou de nome.Para plotar mais de uma curva em modo parametrico deve-se formar pares defuncoes e formatar apenas a segunda de cada (caso um novo estilo seja necessario).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 4 6 8 10

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

    6.7 set polar

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

    12

  • um angulo tracados a partir da origem. O raio e a variavel dependente e o angulo aindependente (exemplo, r() = sin() denota uma funcao em coordenadas polares,onde r denota o raio e o angulo). A variavel independente em gnuplot no modopolar e t. Para plotar uma rosa de tres petalas use,

    gnuplot> set polar

    dummy variable is t for curves

    gnuplot> plot sin(3*t)

    1

    0.8

    0.6

    0.4

    0.2

    0

    0.2

    0.4

    0.6

    1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1

    sin(3*t)

    7 Definindo Variaveis e Funcoes

    Para definir uma variavel em gnuplot basta atribuir um valor ao nome da novavariavel. Exemplo,

    gnuplot> w = 45

    gnuplot> a = 45

    estas chamadas criam as variaveis w e a. Variaveis podem ser definidas tambem apartir do valor de outras variaveis ja definidas. Exemplo,

    gnuplot> max = 56.0

    gnuplot> min = 24.4

    gnuplot> med = (max+min)/2

    gnuplot>

    Para saber o conteudo de uma variavel ja definida, use print. Exemplo,

    gnuplot> print med

    40.2

    gnuplot>

    Para criar uma funcao em gnuplot deve-se definir um identificador, pos-fixa-lo deum par de parenteses contendo as variaveis independentes e por fim igualar estadefinicao a uma equacao que contenha como variaveis apenas as variaveis definidas.Exemplo,

    gnuplot> f(x) = sqrt(x**2 - 5)

    gnuplot>

    13

  • Isso define a funcao. Para plotar essa funcao use,

    gnuplot> plot f(x)

    ou

    gnuplot> plot [-10:10] f(x) lc rgb \green" lw 2

    0123456789

    10

    -10 -5 0 5 10

    f(x)

    Apesar de x ser o identificador padrao para variavel independente, a definicao deuma funcao pode lidar com qualquer identificador, como em,

    gnuplot> f(a) = sqrt(a**2 - 5)

    gnuplot>

    Entretanto para plotar a funcao deve-se chamar plot f(x) o que fara x tomar ovalor de a. Nao esqueca que o gnuplot define x como variavel independente e e elequem deve estar presente na expressao final da funcao a ser plotada.Para definir uma funcao de mais de uma variavel, liste-as entre os parenteses dadefinicao da funcao separando-as por vrgulas. Exemplo,

    gnuplot> pot(a,b) = exp( b*log(a) )

    gnuplot>

    Isso define a funcao pot. Para testar a nova funcao use,

    gnuplot> print pot(2, 3)

    8.0

    gnuplot>

    Para construir um plot 2D com funcoes de mais de uma variavel independente deve-se naturalmente repassar o x para apenas um dos argumentos e os demais devemreceber 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 funcoes plotadas sao respectivamente 2x e x2.

    14

  • 0200

    400

    600

    800

    1000

    1200

    -10 -5 0 5 10

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

    8 Operador Ternario de Decisao

    O operador ternario ?: (a interrogacao e os dois-pontos constituem este operador)no gnuplot permite construir estruturas condicionais. Ele forma uma expressao detres termos de modelo geral,

    ? :

    Caso o resultado de exp1 (que deve sempre resultar em verdadeiro ou falso) sejaverdadeiro, o resultado final da expressao como um todo sera exp2 e do contrarioexp3. No exemplo,

    gnuplot> w = 45

    gnuplot> q = w>10 ? 9 : 11

    gnuplot> print q

    9

    gnuplot>

    a expressao w>10 retorna verdadeiro pois w foi inicializado com 45. Da q recebe9 e nao 11. O operador >(maior que) e denominado um operador relacional ew>10 uma expressao relacional (porque vale verdadeiro ou falso). Os operadoresrelacionais do gnuplot sao,

    operador significado> maior que< menor que>= maior ou igual

  • gnuplot> f(x) = x plot [-5:5] f(x)

    gnuplot>

    0

    5

    10

    15

    20

    25

    -4 -2 0 2 4

    f(x)

    isso plotara um grafico que e parcialmente linha, parcialmente parabola. Se maisque duas equacoes comporem a funcao em partes, como em,

    f(x) =

    10 2x x < 525 x2 5 x 5x 5 x > 5

    use associacoes do operador ?:. A funcao h(x) anterior e plotada usando,

    gnuplot> set key off

    gnuplot> h(x) = x

  • 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) ) lc rgb "black" lw 2

    gnuplot>

    0

    100

    200

    300

    400

    500

    600

    -10 -5 0 5 10

    Apesar do identificador a ser usado na definicao da funcao a(i) e no segundo argu-mento de f(), tratam-se de coisas diferentes. Na plotagem propriamente dita, decontador i e limites 1 e 8, a chamada a` f() invoca internamente a(i) para repassarseu valor ao argumento a. Remodelando as variaveistem-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 sada grafica e a mesam da listagem anterior.

    10 Utilizando Arquivo Texto

    Se um arquivo texto contiver dados formatados em linhas e colunas, entao serapossvel ao gnuplot fazer curvas tomando quaisquer uma das colunas como dadosde abcissa e outra como dados de ordenada. Cada par tomado de dados de umalinha do arquivo texto sera considerado um ponto da curva.

    Seja por exemplo o seguinte codigo em C que gera um arquivo texto chamadosaida.txt e contendo tres colunas de dados numericos tabuladas corretamente,

    #inc lude #inc lude #def ine N 20#def ine XMIN 0 . 0#def ine XMAX 1 0 0 . 0i n t main ( ) {

    FILE f p = f op en ( s a i d a . t x t , w ) ;i n t k ;f o r ( k=0; k

  • f l o a t x = XMIN + (XMAXXMIN) k /(N1);f l o a t y = s q r t ( x ) ;f p r i n t f ( fp , %.3 f \ t %.3 f \ t %.3 f \n , x , y , xy ) ;

    }f c l o s e ( f p ) ;

    }As dez primeiras linhas do arquivo saida.txt tem 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 executeo gnuplot estando na pasta onde ele (saida.txt) foi gerado. Isso dara ao gnuplotacesso direto a saida.txt. Para plotar uma curva que use abcissas da primeira colunae como ordenadas a segunda coluna use,

    gnuplot> plot "saida.txt" using 1:2

    gnuplot>

    0

    2

    4

    6

    8

    10

    0 20 40 60 80 100+

    ++++++++

    ++++

    ++++

    +++

    O nome do arquivo segue plot entre aspas e o modificador using indica as duascolunas (separadas por dois-pontos) que devem ser usadas. Se houvesse ai using2:3, seriam usadas respectivamente para abcissas e ordenadas, dados das colunas2 e 3. Se apenas uma coluna e fornecida, como em using 2, ela sera tomada comodados de ordenada ao passo que as abcissas serao os inteiros naturais (0, 1, 2, 3,...).Ha situacoes em que os dados nao bastam para criar as curvas sendo necessarioainda processa-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 expressoesavaliativas que rendam os valores desejados. Uma expressao avaliativa esta sempreentre parenteses e manipula o valor de uma dada coluna pre fixando seu ndice com$. O exemplo citado entao fica,

    gnuplot> plot "saida.txt" using (2*$1):(3*$2)

    gnuplot>

    0

    5

    10

    15

    20

    25

    30

    0 50 100 150 200+

    ++++++++

    ++++

    ++++

    +++

    Nao ha restricoes nas expressoes avaliativas sendo inclusive possvel operar entrecolunas. No exemplo,

    gnuplot> plot "saida.txt" using ($1):( ($2+$3)/2 )

    gnuplot>

    as abcissas sao valores da primeira coluna ao passo que as ordenadas sao os valoresmedios entre os dados da segunda e terceira coluna. Naturalmente a expressaousing 1:2 e equivalente a using ($1):($2). Assim a notacao com parenteses e$ so e realmente interessante quando processamento adicional e requerido.O padrao de curvas com funcoes utiliza linhas ao passo que dados de arquivos saoplotados com pontos (pequenas cruzes). E entretanto possvel mudar estes padroesusando o modificador with. Por exemplo, para plotar uma curva em linha dos dadosdo arquivo saida.txt use,

    gnuplot> plot "saida.txt" using 1:3 with lines

    gnuplot>

    0

    200

    400

    600

    800

    1000

    0 20 40 60 80 100

    19

  • De forma similar pode-se obrigar funcoes a usarem pontos como em,

    gnuplot> plot cos(s) with points

    gnuplot>

    -1-0.8-0.6-0.4-0.2

    00.20.40.60.8

    1

    -10 -5 0 5 10

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    11 Usando Ajuda do Gnuplot

    Para obter mais detalhes sobre os recursos apresentados neste artigo, e outras ce-tenas mais que nao mencionamos aqui, use o comando help. Ele deve ser escritoacompanhado do comando que se deseja um maior detalhamento. Poe exemplochamar,

    gnuplot> help set

    lista a ajuda de set e mostra todos os itens que ele pode configurar. Para detalha-mento de algum deles basta digita-lo ou chamar diretamente no prompt,

    gnuplot> help set angles

    A maioria dos comandos aqui contem algum material de ajuda (help plot, helplinecolor, help with, help using e etc). Um tutorial completo do gnuplotesta disponvel em ingles no endereco,http://www.gnuplot.info/docs/gnuplot.html

    20