Autor Tópico: Plotar gráficos em C++  (Lida 8743 vezes)

Darcamo

  • Visitante
Plotar gráficos em C++
« Online: 14 de Novembro de 2007, 17:06 »
Gostaria de saber se tem alguma maneira fácil de plotar gráficos em C++.
Já dei uma procurada e encontrei algumas opções, mas nenhuma me agradou muito.
  • A GTK extra parece que morreu.
  • A plplot parece ser bem feinha, mas se alguém me confirmar que vale a pena investir nela tentarei aprender como usá-la
  • A QT parece ter uma widget para isso, mas não queria usar QT (já sei um pouco de GTKmm e queria integrar o plot com ela no futuro caso eu faça uma interface gráfica para meu programa)

Em python tem a matplotlib que é muito boa, gostaria de encontrar algo semelhante para C++.
O ideal seria algo com a qualidade e flexibilidade do Gnuplot. Tem como se comunicar com o gnuplot pelo C++? Ou só é possível um system('gnuplot ...')?

Offline ppfb

  • Usuário Ubuntu
  • *
  • Mensagens: 337
    • Ver perfil
Re: Plotar gráficos em C++
« Resposta #1 Online: 14 de Novembro de 2007, 20:00 »
Citar
Tem como se comunicar com o gnuplot pelo C++

procurando pra fazer trabalho eu achei que ele tem uma interface com o C, logo, dá pra usar com o C++ também...

só não sei como se faz isso, hehehe

abraços

Offline Khoala

  • Usuário Ubuntu
  • *
  • Mensagens: 61
    • Ver perfil
Re: Plotar gráficos em C++
« Resposta #2 Online: 15 de Novembro de 2007, 00:12 »
Aqui neste link( http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=5959&pagina=2 ) o cara usa o C para se comunicar com o gnu plot
Não tenho certeza se é isso que você quer
Eu dei uma procurada no google e achei isso também http://www.velocityreviews.com/forums/t278698-calling-gnuplot-from-a-c-program.html
http://www.quantcode.com/modules/smartfaq/faq.php?faqid=5
« Última modificação: 15 de Novembro de 2007, 00:17 por Khoala »

Darcamo

  • Visitante
Re: Plotar gráficos em C++
« Resposta #3 Online: 15 de Novembro de 2007, 12:36 »
Agradeço as respostas.

O que eu queria mesmo (caso ideal) seria alguma forma de poder linkar meu programa com o gnuplot para possibilitar o uso do poder do gnuplot a partir do meu programa sem "apelar" para a função system. No entanto, o que encontrei até agora de interface entre C/C++ e o gnuplot foi usando a função system (para executar um comando do sistema, no caso o gnuplot).

Encontrei uma interface entre C++ e o gnuplot bem trabalhada nesse estilo, mas não consegui compilar. Ela usa a função _popen que não foi encontrada. Pelo que entendi o _popen cria um fork rodando o gnuplot e os comandos são enviados para o gnuplot através de pipes.

Quantos aos links, o do Viva o Linux não fala de uma interface entre C e o gnuplot, mas sim de uma maneira de renderizer o gráfico gerado pelo gnuplot com o povray (o que é bem interessante para obter gráficos mais bonitos) e o programa exemplo que ele coloca em C é apenas para gerar os dados para serem usados pelo gnuplot. Os outros links são pessoas com +- a mesma dúvida que eu.

Com o gnuplot já sendo tão poderoso e completo como é, eu esperava que existisse uma biblioteca dele (algo como libgnuplot) que eu pudesse usar em meu programa ao invés de usar o "programa gnuplot", mas estou achando que o único jeito vai ser usando system mesmo (ou então pipes, mas não sei nada sobre pipes).

Dessa forma vou tentar a abordagem de gerar o script para o gnuplot e mandar ele executar o script a partir do C++ usando a função system.