Pessoal, estou fazendo um software científico que precisa de gerar gráficos, e a única ferramenta (Gratuita) que proporciona este gráficos é o GnuPlot.
Preciso gerar estes gráficos através do meu software, mas não estou conseguindo.
Alguem já fez isso com o gnuplot?
GnuPlot através de java
F
3 Respostas
F
Cosegui algum progresso, mas não é suficiente, executo este código e ele gera o gráfico, mas o gráfico fecha sozinho logo depois que é aberto...
vejam o código:
Alguem pode me ajudar?
public void executa() {
try{
Process p = Runtime.getRuntime().exec("C:\\Program Files\\gnuplot\\bin\\pgnuplot.exe");
outputStream = p.getOutputStream(); //process p
PrintWriter gp = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream)));
gp.print("plot sin(x)");
gp.flush();
gp.close();
}catch(Exception x){
System.out.println(x.getMessage());
}
}
F
é pessoal depois de muito tentar, consegui algo, durante aqueles nanos segundos que o gnuplot fica aberto temos que enviar comandos para que ele salve os gráficos em imagens, não consegui fazer isso abrindo o visualisador de gráficos dele, mas consegui salvar as imagens dos gráficos, vejam ai um exemplo para a posteridade:
public void exec(String[] comando) {
try {
Process p = Runtime.getRuntime().exec("C:\\Program Files\\gnuplot\\bin\\pgnuplot.exe");
OutputStream outputStream = p.getOutputStream(); //process p
PrintWriter gp = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream)));
for(int i = 0;i<comando.length;i++){
gp.println(comando[i]);
gp.flush();
}
gp.close();
} catch (Exception x) {
System.out.println(x.getMessage());
}
}
public static void main(String[] args) {
GnuPlotComandos ece = new GnuPlotComandos();
String[] teste = new String[7];
teste[0] = "reset\n";
teste[1] = "set term png transparent\n";
teste[2] = "set output \"d:/testando.png\"\n";
teste[3] = "set multiplot\n";
teste[4] = "plot sin(x)\n";
teste[5] = "unset multiplot\n";
teste[6] = "exit";
ece.exec(teste);
}
M
Eai meu, acho que ja faz alguns tempo e não deva mais precisar disto, mas eu baixei alguns frameworks para usar gnuplot
dentre eles achei o http://sourceforge.net/projects/jgp/
procurei por comandos dentro das classes do projeto e consegui fazer aparecer o gráfico
final Process proc = Runtime.getRuntime().exec("caminhognuplot\\pgnuplot.exe");
PrintWriter pw = new PrintWriter(proc.getOutputStream());
pw.println("comandos");
pw.println("pause -1 'Press ENTER to continue...' \n");
pw.close();
A magia esta no pause -1, ele vai criar algo equivalente ao um JOpitonPane de javaswing e aguarda tu fazer alguma coisa.
Abraços
Mário Valmir
Criado 4 de março de 2010
Ultima resposta 30 de abr. de 2012
Respostas 3
Participantes 2
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Ontologias e Web Semantica: Do conceito a aplicacao Por Ivam Galvao Filho — Casa do Codigo