Pergunta

Depois de ter visto alguns sugestões para gráficos, gostaria de saber qual é o melhor para o meu problema.

Eu quero processar um gráfico direcionado para um servlet / imagem que é exibida no navegador. Deve haver algum tipo de otimização de posição. Nenhuma dependência de balanço seria preferível. Algoritmos não são importantes, uma vez que a estrutura do gráfico é determinada pela lógica de negócios. Seria desejável para ser etiquetas add capazes de bordas bem. seria ótimo se eu posso servir isso como PNG / SVG.

Qual biblioteca / serviço que você recomendaria?

esclarecimentos:

1) A questão é tudo sobre gráficos - como Directed acíclico Graph - NÃO - < a href = "http://en.wikipedia.org/wiki/Chart" rel = "nofollow noreferrer"> Gráficos .

2) flot, o Google Charts -? Não pode traçar gráficos, apenas gráficos, ou eu perdi alguma coisa

3) Não, eu não preciso de interatividade

4) graphviz seria bom, mas a biblioteca grappa java está bastante desatualizado e é construído em cima de swing / awt. embora possa ser teoricamente possível para tornar balanço de imagens, não seria minha maneira favorita de a-lo em um servidor de aplicativo.

5) seria bom para usar um serviço online onde as imagens não são hospedados localmente.

EDIT: adicionado links para Wikipedia para esclarecer gráfico / term gráfico

Foi útil?

Solução

Além de esperar semanas para ouvir sobre o Quadro mágica que vai resolver todos os seus problemas em uma linha de código, há também a outra opção de apenas escrever algum código-se a fazer exatamente o que você quer ... (I 'm não dizendo que é 10 minutos de trabalho, mas é provavelmente um ou dois dias, e você postou sua pergunta mais de duas semanas atrás ...)

Você já teve um olhar, por exemplo, à entrada da Wikipedia sobre algoritmos baseados-Force - tem pseudocódigo e alguns links que podem ser úteis

.

Eu estou assumindo que é o algoritmo de layout que é o problema, e não a questão de criar um BufferedImage, chegando ao seu contexto gráficos, PNG-codificação-lo e enviá-lo para baixo do soquete. Você realmente não precisa de um quadro para o que pouco, eu não acho.

Outras dicas

Dê uma olhada graphviz

yFiles pode ser útil para isso.

Como sobre o componente de ponto de Graphviz? Ela produz gráficos (não gráficos), saídas para PNG e SVG, e suportes de rotulagem bordas. Você pode desembolsar para ponto para gerar a imagem que você precisa, e retornar um tag img que as referências que. Alternativamente, você pode retornar um tag img que faz referência a uma URL que irá gerar o gráfico requisito (ou recuperar uma cópia armazenada em cache). Aqui está o ponto info:

http://www.graphviz.org/pdf/dotguide.pdf

Você também pode dar uma olhada em WebDot, que é aparentemente projetado para esta finalidade:

http://www.graphviz.org/webdot/

Tente aiSee . Ele é usado por todos os tipos de aplicações baseadas na web para mineração de dados, estática análise programa , matriz de visualização , rede análise , e outros enfeites. Ele também é usado por alguns MediaWiki como seu graph- layout de backend.

Eles têm uma enorme base de dados exemplo gráficos sobre a aiSee .com. Confira. Ele suporta etiquetas de ponta, exportação para mapeadas SVG e HTML, e não é dependente de Swing.

mxGraph para tais requisitos. Nós chegou a lançá-lo em 2006, mas demorou um pouco para perceber esta pergunta ...

Para serverside , tente JUNG , você pode executá-lo contra Batik e produzir bela SVG ou PNG. JUNG tem um design agradável e layout muito poderosa algoritmos ...

Além disso, como você menciona que "seria bom usar um serviço on-line " , graphviz fornecer um serviço chamado webdot para renderizar gráficos.

Há outros ao longo desta linha, bem como ... por exemplo, http://graph.gafol.net/ (parece estar em baixo)

lado do cliente:

  • Tente http://arborjs.org/ para um mínimo (ish) biblioteca é dedicada para layout, use este é você gostaria de preferir suas próprias rotinas de renderização (div, lona, ??SVG, paper.js, processamento ... etc).

  • Eu também gosto http://sigmajs.org/ para uma abordagem mais completa, construção em suporte touch, plugins, formatos de arquivo, etc.

Curiosamente, o projeto Eclipse tem um SWT / JFace componente / framework capaz de exibir e geração de formato de Graphviz 'DOT' (importação / exportação), em puro Java:

ZEST (home page e links para download)

Consulte http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zest para exemplos de uso.

Embora ZEST é apontado como um plugin do Eclipse, parece que do API DOT-manipulação pode ser autônomo usado e externo para uma instalação Eclipse.

Felicidades

Rico

Você pode tentar sigma.js: http://sigmajs.org/

É um leve, biblioteca de código aberto em Javascript para exibir grandes gráficos na Web.

JPGD é um analisador Graphviz em Java. É um pouco abandonado, mas o código é bom e claro, e se você encontrar bugs Estou correções certeza o autor aceitaria contribuíram.

Embora anunciado como um analisador, é também um gerador. Você pode construir gráficos como coleções de Node e objetos de Borda, em seguida, obter .dot usando Graph.toString (). Conseguir isso como um gráfico seria um shell simples para o Graphviz dot executável.

Como alternativa, ponto é muito fácil de gerar a si mesmo. No caso mais simples, é só uma questão de escrever um cabeçalho vaso

digraph myGraph {

... seguido por uma definição da borda por aresta

node1 -> node2 ;

... seguido por uma chave de fechamento

}

Então eu peguei alook em todas as respostas dadas e links, parece que Prefuse / alargamento vontade pela escolha ideal. Eles têm muito atraente visialisations, mais eles têm construído em suporte para gráficos.

Talvez confira Google Charts ?

Você pode usar SVG em combinação com Batik. Eu tenho usado isso várias vezes para a exibição de gráficos. Batik com Java 1.5 é muito rápido. Com esta solução é possível programar o seu gráfico em Java sem dependência de Swing. Você pode adicionar etiquetas onde quiser, de acolhimento-lo como um Servlet e exibi-lo como PNG ou SVG.

Você pode criar os gráficos em SVG (este é um documento XML).
Você usa Batik para transformar o SVG-documento a uma imagem PNG / JPG.
Você pode usar um Servlet para transmitir esta imagem De volta para o navegador.

Em Java você construir uma SVG (= XML) documento. As amostras para gráficos SVG pode ser encontrada aqui: Directed gráfico e aqui: simples dirigido gráfico

Consulte esta questão , especialmente a resposta de Stephan prefuse aproximadamente. Eu li que você não precisa de interatividade, mas prefuse ainda pode ser útil.

Posso toda a-de coração recomendar flot - excelente!

Consulte exemplos aqui .

JFreeChart pode ser o caminho que você quer ir, mas você fazer uma distinção entre tabelas e gráficos. Talvez você possa explicar o que você quer dizer com isso. Eu normalmente usado estes termos como sinônimos. :)

JFreeChart tem boas dispersão, barras e de linhas gráficos, bem como os divertidas como Pie e disque então talvez ele vai trabalhar para você.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top