Biblioteca de gráficos .NET por aí? [fechadas]

92

Estou procurando bibliotecas de gráficos para .net. Há algum fora?

ps: quero dizer bibliotecas GRAPH, não gráficas nem bibliotecas de gráficos!

editar: O que quero dizer são gráficos, da teoria dos grafos: (fonte: sourceforge.net )texto alternativo

Eu também preciso ter recursos de desenho.

elísio devorado
fonte
Talvez possa ser útil: github.com/komorra/NodeEditorWinforms
komorra
O link da imagem parece estar quebrado (redireciona para outra coisa agora)
UuDdLrLrSs

Respostas:

44

Use uma combinação de QuickGraph ( GitHub , CodePlex ) e Graph # for WPF ( GitHub fork , CodePlex ) - ambas as melhores bibliotecas. Eles funcionam muito bem para mim, mas a documentação para o Graph # é quase inexistente.

Matt Breckon
fonte
16

Estou trabalhando na equipe NDepend e mudamos do GraphViz para o MsAgl ( Microsoft Automatic Graph Layout ) em setembro de 2008. A licença MsAgl permite a utilização comercial. Aqui estão algumas fotos de amostra de gráficos MsAgl integrados no NDepend (tudo é interativo, os nós são móveis / selecionáveis ​​/ removíveis / clicáveis, as bordas são editáveis ​​/ selecionáveis ​​/ removíveis / clicáveis, o layout pode ser ampliado e também, embora possa ser mais limpo a API MsAgl é limpa o suficiente para trabalhar):

insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui

Patrick da equipe NDepend
fonte
Também pode jogar com AGL em rise4fun.com/Agl e ver gráficos de outros em rise4fun.com/rest/samples/rss/Agl
George
2
Observe que o MSAGL agora é OpenSource sob licença MIT no GitHub: github.com/Microsoft/automatic-graph-layout e parece ter sido mantido, já que algumas correções para a versão do Silverlight foram lançadas recentemente
George Birbilis
Em relação a tentar AGL no site Rise4Fun que mencionei, talvez seja uma opção simples para brainstorming, mas você só insere o gráfico em forma de texto lá e os rótulos que usa para os nós são usados ​​como IDs nessa sintaxe de texto, então acho que você não pode ter um nó com o mesmo rótulo (digamos, Casa) em dois locais do gráfico. Parece que você também pode usar rótulos para as bordas do gráfico (para os links), usando a sintaxe mostrada em rise4fun.com/Agl/fsm (pressione o botão PLAY e então role para baixo para ver qual gráfico é gerado)
George Birbilis
Onde posso baixar uma versão binária estável? Não quero construir todas as fontes de qualidade desconhecida.
Thomas Weller
Acho que aqui github.com/Microsoft/automatic-graph-layout não tenho certeza se a versão binária está incluída
Patrick da equipe NDepend
12

Se meu post anterior for excluído, tentarei dar uma resposta mais complexa à pergunta. A primeira resposta não é mais real, pois a biblioteca Graph # está bastante desatualizada.

Recomendarei verificar a combinação de GraphX e Quickgraph . GraphX ​​como mecanismo de renderização e Quickgraph como gerenciamento de gráficos e componente de operação matemática.

A biblioteca GrpahX é codificada para WPF 4.0 e METRO. Ele fornece muitos recursos que faltam no gráfico:

  • Desempenho de renderização aprimorado para gráficos grandes
  • Roteamento de borda e suporte de empacotamento, muitas outras opções de borda
  • Controle de zoom aprimorado que suporta a janela Visão geral e seleção de vários vértices
  • Documentação rica e amostras

Além disso, GraphX ​​oferece suporte a todos os algoritmos de layout originais do Graph #. Visite http://panthernet.ru/forum se tiver alguma dúvida!

Alexander Smirnov
fonte
O link GraphX ​​está morto.
xabush de
Não, apenas tive problemas sérios com vírus na hospedagem. Os fóruns estão online.
Alexander Smirnov
9

Existe o QuickGraph , ele funciona muito bem e tem a maioria dos algoritmos básicos.

Doug McClean
fonte
Legal, mas não parece ser capaz de desenhar os gráficos.
devorado elysium
2
Verdade. Tive a impressão de que você estava perguntando sobre computação com gráficos, em vez de desenhá-los. No entanto, ele faz a saída para formatos consumidos por algumas ferramentas de renderização diferentes.
Doug McClean,
5

Dê uma olhada em yWorks: http://www.yworks.com/en/index.html

Não há uma grande quantidade de boas bibliotecas por aí, pelo que tenho visto.

COMO
fonte
1
Parece incrível, mas 7k para uma biblioteca é ... demais para mim.
devorado elysium
surpreendentemente, essa é uma das opções mais baratas!
AS
1
São 7k, mas já me diverti mais com uma API do que com as bibliotecas yWorks .NET e WPF.
Matthew Ruston
5

Você pode usar a API NodeXL da Microsoft Research em: http://www.codeplex.com/NodeXL, mas uma pergunta semelhante foi feita em: /programming/44090/do-you-know-any -graph-visualization-libraries-for-net /

DrDee
fonte
Parece bom, mas pelo que vi agora a partir dos exemplos deles, parece que basicamente você tem que desenhar tudo sozinho, o que seria um problema, pois tenho milhares de nós para desenhar.
devorado elysium
Não tenho certeza do que você quer dizer com 'desenhar tudo sozinho', NodeXL é uma extensão para Excel, mas também uma API para .Net e suporta algoritmos de layouts de gráfico como layout direcionado à força (Fruchterman-Reingold ou Harel-Koren multiescalas rápidas) ou um layout geométrico (círculo, grade, espiral, etc.). Eu mesmo usei e não há muito trabalho "manual"
DrDee
Eu estava falando de outra coisa, me confundi com uma resposta diferente. Mas parece que o NodeXL requer o Office 2007. Eu nem tenho o Office instalado.
devorou ​​elysium
Eu já instalei isso. Agora, como devo usá-lo em c #?
devorado elysium
certifique-se de instalar a biblioteca API e não a extensão do Office Excel. A API está disponível em: codeplex.com/NodeXL/Release/… O namespace de NodeXL é Microsoft.NodeXL, então você pode importá-lo usando: import Microsoft.NodeXL.Core import Microsoft.NodeXL.Visualization (acho que esses dois são os mais bibliotecas importantes). Apenas certifique-se de que o caminho do seu IDE contém a pasta NodeXL.
DrDee
3

Eu não experimentei ainda, mas encontrei uma oferta interessante da MS Research para visualizar gráficos direcionados Microsoft Automatic Graph Layout .

Tente usar "gráfico direcionado" ou "dígrafo" para termos de pesquisa. Eu recebo muitos acessos.

Emmanuel
fonte
3

Dê uma olhada em Satsuma . Escrito em C #, principalmente algoritmos de gráfico, mas também há algum layout de gráfico básico e desenho.

Szali
fonte
2

Confira http://quickgraph.codeplex.com/ Eles têm suporte para visualização via DotViz e Glee.

Para visualização, também verificaria

http://flare.prefuse.org/

Embora seja flash, parece muito interessante, e eles têm pelo menos visualização de árvore, embora você possa extrair alguns gráficos não direcionados disso.

JBland
fonte
0

Biblioteca de coleção genérica C5 para C # e CLI

jjchiw
fonte
Isso não contém apenas alguns exemplos de algoritmos de gráfico construídos nas estruturas de dados de coleção? Eu teria imaginado que a pergunta pede algo como a biblioteca C ++ BGL ( boost.org/doc/libs/1_40_0/libs/graph/doc/index.html ).
Pontus Gagge
Você está certo, Pontus. Há uma classe Graph nos exemplos do guia do usuário, mas ela não faz parte da biblioteca. É um exemplo construído em cima disso. E um confuso, incompleto olhando para a fonte.
Paul Sasik,
Mas pode ser usado, bem, é como uma abordagem .......
jjchiw
0

Amigo, acho que é disso que você precisa!

Este artigo apresenta uma biblioteca de gráficos genéricos, 100% C #. Esta biblioteca é uma tentativa de portar a Boost Graph Library (BGL) de C ++ para C #.

Autodidata
fonte
1
Sim, mas tem vários problemas ao tentar desenhar os gráficos, pelo que li nos comentários do codeproject.
devorado elysium
0

Usamos ZedGraph, que é um projeto de código aberto escrito em C #, para que você possa ajustá-lo se achar necessário. Atendeu às nossas necessidades, que parecem estar muito próximas do que você descreveu. Existe até um site wiki para o projeto com alguns exemplos muito bons.

Walter
fonte