Gnuplot - versátil ferramenta científica

Alguém já viu um pinguim cientista? Pois saiba que é na comunidade científica que o Linux mostra sua grande força com excelentes programas. Vamos começar com o gnuplot, pequeno programa para a geração de gráficos, seja de dados coletados ou gerados por ele através de comandos intuitivos.

[ Hits: 147.424 ]

Por: Franklin Anderson de Oliveira Souza em 31/05/2004 | Blog: http://fisica.ufmt.br/~franklinbr/


Considerações prévias



Para declararmos as funções matemáticas no terminal, devemos primeiro converter os símbolos matemáticos para caracteres para que possa ser inserido através do teclado e sendo assim devemos tomar um pouco de cuidado, veja os exemplos:

"raiz quadrada de x" em caracteres fica:

sqrt(x)

"x ao quadrado mais dois":

x**2+2

"cosseno de x":

cos(x)

"seno de x":

sin(x)

"x ao quadrado mais 1, dividido por raiz de x mais 4":

x**2+1/sqrt(x+4)

"modulo de x":

abs(x)

Isso não é só usado no gnuplot e sim em todos os programas em que é necessário declarar funções matemáticas ou coisas do gênero e ainda há programas que aceitam "x quadrado" como "x^2", no caso do gnuplot não.

Vamos a alguns exemplos.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalando o gnuplot
   3. O primeiro contato
   4. Considerações prévias
   5. Gráficos no plano (2D)
   6. Gráficos no espaço (3D)
   7. Uma aplicação (importando dados)
   8. Conclusão
Outros artigos deste autor

Debian + Xorg + Nvidia - Um conceito visual para desktops

O que é Orientação a Objeto - Mais uma tentativa

Gráficos elaborados com GnuPlot e Pov-Ray

Mp3Blaster - O mais completo reprodutor de MP3 modo texto

Polindo o seu Debian - KDE + Debian-Sid

Leitura recomendada

Criando uma WEBApi utilizando dotnet core e vscode

Mantendo-se atualizado nas notícias com RSS

Enviando mensagens para celulares TIM através de script

Qemu e Kqemu no Ubuntu Dapper Drake 6.06 LTS

Implementando servidor web Java com Tomcat no Linux

  
Comentários
[1] Comentário enviado por jose_maria em 01/06/2004 - 06:43h

Excelente.
Sinto falta de artigos sobre aplicações ciêntificas e linux.
Há excelentes softwares livres para diversas aplicações ciêntificas. Plotadores de funções são ferramentas indispensáveis no meu dia-a-dia.
Uma outra dica é o Kplot, um plotador mais fraquinho, mas mais simples.
Valeu.

[2] Comentário enviado por jeffestanislau em 01/06/2004 - 09:15h

Ficou muito legal o seu artigo... A área científica é um campo pouco explorado aqui no VOL... mas vamos tentar reverter isso...
Parabéns!!!

[3] Comentário enviado por oscarcosta em 01/06/2004 - 09:26h

Muito bom o teu artigo... Pinguim cientista é ótimo...

Eu trabalho em um projeto, na minha faculdade, com ferramentas matemáticas no "Pinguim".
Mais especificamente com: Scilab (http://scilabsoft.inria.fr/) e o Ocatve (www.octave.org).
Sendo que o Octave, por não ter uma gui como o Scilab, utiliza o Gnuplot para a plotagem de gráficos...

É legal o pessoal se concientizar e começar a procurar mais as inúmeras ferramentas que o Software Livre nos disponibiliza...

[4] Comentário enviado por franklinbr em 01/06/2004 - 12:22h

Muitos universitarios se apoiam em ferramentas pagas como Maple, Matlab entre outras, de forma como se fosse a unica solução computacional possivel. Existe tantos programas de qualidade no linux para pesquisas e manipulacao de dados e de tamanha qualidade que mostras de forma discarada as varias facetas comerciais dos programas proprietarios, com funcionalidades inuteis a cada versao. Tenho um projeto de construir um site voltado somente para software livre e cientifico voltado especificamente para o linux. Quem quiser colaborar sera bem vindo. No momento estou tentando aprender a usar o MAYAVI para novos tutorias, uma especie de "gnuplot" pra quem precisa de uma apelo visual melhor, na mesma linha do OPEN DX.

[5] Comentário enviado por Czuber em 01/06/2004 - 16:30h

Gostei do artigo, fico feliz quando sei que existe uma saída free para softwares demasiadamente caros! Quanto à idéia do franklinbr só digo uma coisa: To dentro!
Trabalho na minha faculdade com mineração de dados em clusters de PCs com Linux usando Java, td Open Source!
[]s

[6] Comentário enviado por unx em 01/06/2004 - 18:18h

Sobre o comentário do Czuber: Java, infelizmente, não é Open Source (considerando a implementação da Sun).

[7] Comentário enviado por ivandourado em 01/06/2004 - 19:59h

Sou extremamente prático (mas detesto o windows não pela sua apresentação e sim pela forma exploradora como é apresentado) e deixo aqui uma pergunta em relação ao artigo do Franklin que diga-se de passagem, está bastante ilustrativo e convincente para um programa de linha de comando: Quem, além do pessoal tecnicamente familiarizado com a linha de comando do linux, vai seguir todos esses passos pra chegar ao resultado ? será que algum usuário windows se convenceria a migrar para o linux e usar o gnuplot ? será que os cientistas que precisam remir tempo, conseguirão esse intento com essa ferramenta ? não sou pessimista e sim realista. Aliás foi exatamente isso que alguns que postaram no meu artigo "Viva o Linux mas sem muletas" comentaram: existem programas feitos para windows que no momento não possuem paralelo no linux ou se possuem ainda não são práticos o suficiente para convencer o usuario a usá-los e por isso a saida é continuar utilizando programas do windows via wine. No caso do programa em tela, embora eu seja o patinho feito dos comentários, acho que para o usuario final (mesmo que seja ele cientista - se não tem conhecimento de linux), ainda não tem serventia. Como disse o autor, se ele tem um front ed que pode ser utilizado, talvez fique mais agradável.

[8] Comentário enviado por franklinbr em 01/06/2004 - 21:12h

Olá Ivan !!!

Programas proprietarios do tipo do Gnuplot que tem um front-ed muito bonito e que rodam no windows tem a mesma dificuldade do que o Gnuplot. Sabe porque? Todos os programas sao baseados e linha de comando. Ninguem cria um grafico de uma funcao matematica dentro de sua complexidade simplesmente clicando em janelinhas animadas (a menos que voce se contente com o o help on-line). Outra coisa eh o publico que usa estes programas, na sua maoria nao sao usuarios finais, sao pessoas que precisam de um software robusto e tecnico e nao de um front-ed, dessa forma, tanto no linux como no windows, existe uma dificuldade intrisica a natureza do softwar. Quem chegar a precisar de um gnuplot ou outro programa de manipulacao de dados vai ter que estudar a sintaxe da linguagem para plotar os seu graficos ou manipular os seus dados independente de plataforma. Ou alguem aqui acha que um profissional de AutoCad (windows) liga pra o "front-ed" da janela ou os botoezinhos que o rodeia ?

[9] Comentário enviado por ivandourado em 01/06/2004 - 22:28h

Não sei se vc eh engenheiro ou algo do gênero, mas posso lhe garantir que conheço varios colegas meus (sou professor do estado do RS) que são engenheiros e arquitetos, usam o autoCad e ligam sim para as janelinhas e botoezinhos e que com certeza não investiram milhares de reais numa licença do AutoCad pra escrever linhas de comando. Mas como eu sempre digo, cada um tem sua opinião e linux é liberdade, inclusive de expressão, e se temos liberdade de expressar, devemos aceitar a liberdade alheia.

[10] Comentário enviado por oscarcosta em 01/06/2004 - 23:36h

Sobre a discução criada aqui...

Pela parte dos engenheiros eu concordo sobre a utilização de programas mais práticos como os do windows, conheço vários engenheiros que p utilizam e nem pensam em mudar...

Mas pelo lado dos cientistas, eu discordo que eles prefiram janelinhas práticas... eu sou e conheço muitos cientistas (físicos, químicos, matemáticos) que utilizam o Linux e suas ferramentas, pela robustez simplicidade e praticidade, e também nem pensam em mudar para o windows e suas facilidades...

Este é um bom tema de discução e sempre devemos escutar todos os lados envolvidos...

[11] Comentário enviado por franklinbr em 02/06/2004 - 00:00h

Nao entendo o porque do alarde quando se trata de usar algum tipo de programa em "modo texto" e gostaria de saber de onde surgiu a relacao de que se eh modo texto eh dificil, temos que desvincular isso. Essa questao soh tem validade para os winuser, que nunca viu um terminal na vida e acha que isso eh ultrapassado como realmente eh no caso do windows com o sua tela preta do DOS. Vamos valorizar o bash , assim deixamos de criar front-ed onde nao eh necessario !!

[12] Comentário enviado por davidsonpaulo em 02/06/2004 - 00:38h

Salve Franklin!

Não podia de deixar meu comentário aqui... Achei muito legal a iniciativa do Franklin de publicar tutoriais sobre softwares científicos 'free' para GNU/Linux (http://scientistux.site.vu) e ano que vem estarei provavelmente assumindo uma das seções que serão criadas o site, os de softwares para engenharia elétrica e eletrônica. Afinal de contas, um dos maiores problemas de nosso país (e de muitos lugares desse mundo) é a falta de acesso à informação. Se hoje o Linux chegou onde chegou é porque nunca foi problema encontrar informações a seu respeito. O que quer que você queira saber sobre o Linux, você encontra em alguns minutos em sites de busca ou em IRC's. Porque tem que ser diferente com os softwares, principalmente os que são voltados para o meio acadêmico? Temos que tomar a iniciativa de dividir o conhecimento não somente para aqueles que nos recorrem, mas devemos disponibilizá-lo para qualquer um que eventualmente precise dele: criar tutoriais, e-books, publicar artigos, publicar sites, não importa. Todos têm que ter acesso ao conhecimento, livremente. O uso que vão fazer desse conhecimento já é outra história... :D
Falou Franklin... a gente se vê na Federal...
Davidson Rodrigues "Bozo" Paulo

[13] Comentário enviado por Czuber em 12/07/2004 - 15:34h

Só comentando sobre o comentário do unx. Eu sei que não é Open Source. Me referi a Java como uma linguagem de programação e não como um produto de software. Vou explicar por que...
Estou programando em Java na facul e esse código ficará disponível em um servidor cvs para quem quiser participar do desenvolvimento do mesmo ou quiser simplesmente baixá-lo.
Está em Java e é Open Source, com o código Java disponível para download. Não falei nada de JVM, compilador... Não é o Java que é Open Source e sim o software que estamos desenvolvendo!
Ao invés de ficar procurando erros nos comentários diga algo que acrescente valor à comunidade!

[]s
Peço desculpas aos outros que foram obrigados a ler este comentário!
T+

[14] Comentário enviado por falecomcyber em 28/09/2004 - 21:48h

Como salvo os gráficos como uma imagem?
Do tipo .jpg .png, etc..

Gostaria de usar para fazer gráficos do colegio (sou 1o ano ensino medio) e outra pesquisas

falows

[15] Comentário enviado por hr_kako em 07/11/2004 - 15:13h

Ae pinguinzada, só pra visar... quem não sabe a equipe de Fórmula 1 "BWM Williams" está com um novo carro que apresenta uma melhor Aerodinâmica... Pra quem não sabe do que estou falando, o carro desta equipe está com o Bico novo... isto é, um novo aerofólio na frente, que na minha opinião ficou lindo!!! (É coisa de pinguim).
Pra quem não sabe, essa tecnologia do carro foi desenvolvida em Linux!!!
É o pinguim na F1!!!
Para mais detalhes:
www.hp.com/plus_bmwwilliasf1
Só pra avisar, foi com a parceria da HP!

Grato...
hR_Kako.

[16] Comentário enviado por francodof em 19/11/2004 - 11:40h

Havia instalado o gnuplot aqui mas só com esse tutorial fui entender como fazê-lo funcionar. Mas ainda achei meio complicado, pois redimensionei, sem querer, a área do gráfico e não consegui fazer com que voltasse a exibir meu gráfico novamente. Ainda ando à procura de um programa como este para Linux com uma interface gráfica.

[17] Comentário enviado por MacRoney em 05/01/2005 - 14:42h

Viva o Franklin !!!

embora não entendi quase nada ... eu achei muito legal os gráficos em 3D!

[18] Comentário enviado por idilio em 17/02/2005 - 17:29h

Pessoal! Como pode ser complicado mexer num programa desses?? Quem lida com a area de exatas tem instintivamente a facilidade de mexer com esse programa! Alias, quem gosta de matematica naum deve ter dificuldade de passar a equação em si para o modo texto! Valew pela contribuição!!!

[19] Comentário enviado por intpa em 19/05/2005 - 14:39h

Boa tarde turma do vivaolinux.

Sei que o Gnuplot exibe gráficos em 3D, que tenham uma superficie (uma textura) sobre a mesma. Que comando do gnuplot devo utilizar em conjunto com os citados nesse artigo, para que seja exibida uma textura sobre esses gráficos?

[20] Comentário enviado por franklinbr em 19/05/2005 - 15:39h

pode ser feito do seguinte modo:

gnuplot> set isosamples 30,30
gnupplot> set pm3d
gnuplot> splot [-6:6][-6:6] sin(x*y)

[21] Comentário enviado por drunquimein em 14/06/2005 - 09:49h

Gostaria de saber como faço para realizar plotagens subsequentes em um mesmo gráfico utilizando o gnplot pelo Octave, já que utilizando uma extrutura de repetiçao para plotar, o grafico só me mostra o último resultado. Muito obrigado.

[22] Comentário enviado por Century_Child em 02/10/2005 - 15:41h

Bem, o Gnuplot é um excelente programa. Tenho acesso ao Mathematica, Scilab e a outros programas científicos aqui, mas o Gnuplot é imbatível para processamento de dados em massa.

[23] Comentário enviado por rgmmelo em 09/11/2005 - 03:34h

otimo artigo, só de pensar que eu matenho o windows em minha maquina por causa dos progs que meus loucos professores usam, mas esse artigo me instigou a procurar versoes pro tux e dá um pé-na-bunda de vez no windows...............

[24] Comentário enviado por thiagoamm em 02/04/2006 - 00:01h

Ótimo artigo!
Vc está de parabéns.
Creio que este artigo já ajudou, ajuda ou ainda vai ajudar muitos estudantes de cálculo 2.
Abraço :)

[25] Comentário enviado por eldermarco em 28/04/2006 - 14:25h

Realmente este artigo é muito bom, esclarece algumas dúvidas e faz o usuário conhecer essa ferramenta que é bastante importante para plotar gráficos

[26] Comentário enviado por fernandofei em 07/06/2006 - 15:38h

nao sei se alguem já escreveu anteriormente, mas deem uma olhada no link abaixo...

http://www.hpcalc.org/qonos.php

ateh onde é verdade eu nao sei, mas é uma otima ideia...

[27] Comentário enviado por FireBird em 11/07/2006 - 15:31h

E UMA OTIMA FERRAMENTA ESSE GNUPLOT!!! PARABENS!!!

[28] Comentário enviado por felipe.luciani em 09/08/2006 - 10:14h

É uma boa mesmo, e é bem fácil de ser usado.
Já tive o prazer de usar para fazer um trabalho da facul, plotar gráficos de uma função e de sua derivada.
Assim é massa ver o resultado na tela.
=]

[29] Comentário enviado por francodof em 09/08/2006 - 10:47h

Excelente. O único pequeno incoveniente é que o processo de transcrever os dados e gerar o gráfico em modo texto é mais demorado, mas reconheço que as ferramentas matemáticas para Linux sejam muito boas.
Como sou um "zero à esquerda" em programação, acho que um processo semelhante ao que foi feito por vc para gerar os dados, poderia ser feito usando a planilha do OpenOffice, ou não?!. Alguém tem idéia de como deve ser gerada a exportação das planilhas em modo txt (se colunas separadas por espaço ou ponto e vírgula) para a mesma ser usada no GNUPlot?

[30] Comentário enviado por rootux em 03/09/2006 - 08:41h

Muito bom msm cara . .

Estou comecando na area e curto muito o pinguim . .
nao sabia deste tipo de ferramenta para linux . ..

Obrigado por ter ampliado o pequeno horizonte sobre o pinguim :-)

[31] Comentário enviado por maiconfaria em 05/09/2006 - 14:33h

Legal mesmo!

Outro programa interessante é o xmgrace , ele tem uma gui muito boa! talvés o xmgrace seja o programa mais utilizado na area academica !

Ah, sobre o gnuplot, tem um aspecto muito legal nele:
Vc pode setar a saida para um .tex
set terminal tex ( se não me engano)
depois é so incluir compilar... esta dica é interessante pra quem que que seus graficos usem as mesmas fontes do latex ou quem quer por simbolos ou formulas no gráfico !

[32] Comentário enviado por bmarques em 24/09/2006 - 21:31h

Grande fão, esse artigo ta muito legal!!!
Ora, ora...logo agora to afim de aprender gnuplot!
Valeu pelo artigo.

[33] Comentário enviado por balani em 11/10/2006 - 01:38h

Sem comentarios, simplesmente incrivel!!!!

[34] Comentário enviado por Emeagwali em 15/01/2007 - 20:27h

Caros,

como eu faço para desenhar um gráfico no plano com um y1 na direita e y2 na esquerda do papel usando, naturamente, o mesmo x ??

[35] Comentário enviado por franklinbr em 16/01/2007 - 00:01h

Emeagwali ...

Amigo, explique-se melhor pois ficou muito vago. Por vetura voce quer plotar dois graficos ao mesmo tempo ? seria isso ?

De exemplos mais especificos do que voce deseja realmente....

[36] Comentário enviado por Emeagwali em 18/01/2007 - 10:18h

Opá,
é isso mesmo, quero plotar dois gráficos sobrepostos, mas, o que não consegui foi deixar a coluna do primeiro de um lado direito e a coluna do outro, do lago esquerdo do papel. Isso é necessário, pois, os dados do são grandezas diferentes: x(voltagem), y1(corrente elétrica) e y2(luz emitida).

[37] Comentário enviado por bmarques em 18/01/2007 - 12:39h

Cara c estiver usando o gnuplo, e vc tem dois arquivos de dados certo? Um x e y o outro tbem. Basta vc gerar o graficom com o comando plot `nomedo arquivo´ depois o comando replot 'nomedooutroarquivo' caso as coordenadas de um estiver invertida, inverta no arquivo as colunas. Bem essa eh uma saída, pois não estou entendendo direito sua dificuldade. Vc pode tentar usar o xmgrace ou grace que eh muito bom para plotar tbem. Abraços.

[38] Comentário enviado por py9mt em 11/02/2008 - 01:19h

Opa, esse eh meu mestre franklin. valeu

[39] Comentário enviado por dosciati em 02/09/2008 - 09:50h

Ola turma do pinguim.....
É bom saber que existe software livre para area matematica e computacional, ja estava querendo voltar para o linux e relutei por falta de conhecimento dos softwares cientificos!!!
Buenas, ai vai a pergunta!
Onde acho uma lista de softwares na linha do gnuplot que tb possam rodar em ruindows tb?
Bem eu explico, estou iniciando num projeto da Facul... para levar softwares free para as escolas publicas e implementar ferramentas para o ensino de matematica no ensino fundamental e médio e tb fisica no ensino médio.
Outrosim o autor do artigo esta de parabéns mesmo pela iniciativa!
Té mais pinguins!

[40] Comentário enviado por rodrigo chemist em 06/08/2009 - 22:00h

OLA ACABO DE INSTALAR O LINUX . MAS NÃO CONSIGO
INSTALAR O GNUPLOT E O JMOL PARA TRABALHAR EM
SEU TERMINAL COMO PROCEDER???

[41] Comentário enviado por bmarques em 07/08/2009 - 02:44h

Qual linux vc instalou?

[42] Comentário enviado por removido em 15/10/2009 - 08:04h

Pessoal, e o seguinte:

trabalho com simulacao numerica e desenvolvi um programa em FORTRAN que gera um arquivo de saida que pode ser plotado no gnuplot.
Essa simulacao dura dias e eu gostaria que o gnuplot plotasse esses dados para mim de tempos em tempos, ou seja, por exemplo, a cada 5 minutos ele le o arquivo de saida e plota um novo grafico.
Alguem sabe como fazer isso?
Eu quero posteriormente vincular esse grafico numa pagina PHP para ver em qqr lugar do mundo via browser.

Abracos

[43] Comentário enviado por rilben em 24/08/2010 - 11:24h

Pessoal,

Gostaria de saber se tem como fazer e como eu faço pra gerar gráficos com o gnuplot a partir dos dados gerados pelo iozone?
comando para gerar os dados para o excel: iozone -Razb terry.wks

Se alguém souber e me ajudar agradeço...
Abraços a todos...

Rilben

[44] Comentário enviado por eldermarco em 24/08/2010 - 11:42h

@rilben, Se esse programa que você disse pode salvar os dados em um formato somente texto, o gnuplot irá plotar sem problemas. Para ele não importa qual programa gerou, mas o que gerou.

[45] Comentário enviado por rilben em 24/08/2010 - 14:10h

Eldermarco,

Esse programa gera uma arquivo .wks tentei plotar ele mas não apareceu nada no gráfico. Eu consigo fazer esses gráficos no próprio excel mesmo sem problemas mas me pediram pra testar esse gnuplot para gerar esses gráficos através do arquivo que foi gerado pelo iozone que é .wks. E não sei como funciona ou se estou fazendo alguma coisa errado. Vou mostrar como estou fazendo:
na linha de comando do linux digito:
iozone -Razb terry.wks
depois ele vai gerar o arquivo terry.wks
dentro do gnuplot
gnuplot> splot 'terry.wks'
Warning: empty x range [0:0], adjusting to [-1:1]
Warning: empty y range [0:0], adjusting to [-1:1]
Warning: empty z range [0:0], adjusting to [-1:1]
Gtk-Message: Failed to load module "canberra-gtk-module": libcanberra-gtk-module.so: cannot open shared object file: No such file or directory
Gtk-Message: Failed to load module "gnomebreakpad": libgnomebreakpad.so: cannot open shared object file: No such file or directory

Depois aparece o gráfico sem nada...

Se poder me ajudar...
Abraço

[46] Comentário enviado por eldermarco em 25/08/2010 - 16:17h

@rilben, Então, eu não sei como é o formato desse arquivo .wks, mas sei que ele deveria ser no formato texto. No seu caso, três colunas, representando cada uma um eixo. Se tiver coisas diferentes ou a mais, poderá confundir o software. Dê também uma procurada na net por essas mensagens de erro do próprio programa. Essas duas últimas mensagens não são exatamente do Gnuplot e sim do GTK reclamando que não achou algumas bibliotecas. Procure pelos pacotes que fornecem as bibliotecas libgnomebreakpad.so e libcanberra-gtk-module.so na sua distro e instale elas.

[47] Comentário enviado por rilben em 26/08/2010 - 11:58h

Eldermarco,

Obrigado pelas dicas, depois que vc falou instalei as bibliotecas e não deu mais problemas..
Enquanto ao arquivo .wks é pra excel eu peguei os dados do arquivo e coloquei como txt. pedi para gerar os gráficos no gnuplot e gerou....
mas estou apanhando para fazer ficar do jeito que quero, com colunas em 3D que nem no excel...... agora é só eu estudar mais um pouco....

Obrigado pelas dicas...
Abraços
Rilben

[48] Comentário enviado por jpedromend em 06/11/2015 - 23:38h

Como faço com o Fortran 77?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts