.NET คลังกราฟรอบ? [ปิด]


92

ฉันกำลังมองหาไลบรารีกราฟสำหรับ. net มีหมดมั้ย?

ps: ฉันหมายถึงไลบรารี GRAPH ไม่ใช่กราฟิกหรือไลบรารีแผนภูมิ!

แก้ไข: สิ่งที่ฉันหมายถึงคือกราฟจากทฤษฎีกราฟ: (ที่มา: sourceforge.net )ข้อความแสดงแทน

ฉันต้องมีความสามารถในการวาดภาพด้วย


บางทีมันอาจมีประโยชน์: github.com/komorra/NodeEditorWinforms
komorra

ลิงก์รูปภาพดูเหมือนจะเสีย (ตอนนี้เปลี่ยนเส้นทางไปยังอย่างอื่นแล้ว)
UuDdLrLrSs

คำตอบ:


44

ใช้การผสมผสานระหว่าง QuickGraph ( GitHub , CodePlex ) และ Graph # สำหรับ WPF ( GitHub fork , CodePlex ) - ไลบรารีระดับบนทั้งสอง มันทำงานได้ดีสำหรับฉัน แต่เอกสารสำหรับ Graph # แทบจะไม่มีอยู่จริง


16

ฉันทำงานในทีม NDepend และเปลี่ยนจาก GraphViz เป็นMsAgl ( Microsoft Automatic Graph Layout )ในเดือนกันยายน 2008 ใบอนุญาต MsAgl อนุญาตให้ใช้ประโยชน์เชิงพาณิชย์ได้ นี่คือภาพตัวอย่างบางส่วนของกราฟ MsAgl ที่รวมอยู่ใน NDepend (ทุกอย่างเป็นแบบโต้ตอบโหนดสามารถเคลื่อนย้าย / เลือกได้ / ถอดออกได้ / คลิกได้ขอบสามารถแก้ไขได้ / เลือกได้ / ถอดออกได้ / คลิกได้เลย์เอาต์สามารถซูมได้และในขณะที่มันอาจจะสะอาดกว่า MsAgl API สะอาดเพียงพอที่จะใช้งานได้):

ป้อนคำอธิบายภาพที่นี่ ป้อนคำอธิบายภาพที่นี่ ป้อนคำอธิบายภาพที่นี่


ยังสามารถเล่นกับ AGL ได้ที่rise4fun.com/Aglและดูกราฟจากรายการอื่น ๆ ได้ที่rise4fun.com/rest/samples/rss/Agl
George Birbilis

2
โปรดทราบว่าขณะนี้ MSAGL เป็น OpenSource ภายใต้ใบอนุญาต MIT ที่ GitHub: github.com/Microsoft/automatic-graph-layoutและดูเหมือนว่าจะได้รับการบำรุงรักษาเนื่องจากการแก้ไขบางอย่างสำหรับรุ่น Silverlight ได้รับการผลักดันเมื่อเร็ว ๆ นี้
George Birbilis

เกี่ยวกับการลองใช้ AGL ที่ไซต์ Rise4Fun ที่ฉันได้กล่าวไปอาจเป็นตัวเลือกง่ายๆสำหรับการระดมความคิด แต่คุณจะป้อนกราฟในรูปแบบข้อความที่นั่นเท่านั้นและป้ายกำกับที่คุณใช้สำหรับโหนดจะถูกใช้เป็น ID ในไวยากรณ์ข้อความนั้นดังนั้นฉันเดาว่าคุณ ไม่สามารถมีโหนดที่มีป้ายกำกับเดียวกัน (เช่น House) ในสองตำแหน่งในกราฟ ดูเหมือนว่าคุณสามารถใช้ป้ายกำกับสำหรับขอบของกราฟได้เช่นกัน (สำหรับลิงก์) โดยใช้ไวยากรณ์ที่แสดงที่rise4fun.com/Agl/fsm (กดปุ่ม PLAY ที่นั่นจากนั้นเลื่อนลงเพื่อดูว่ากราฟใดถูกสร้างขึ้น)
George Birbilis

ฉันจะดาวน์โหลดเวอร์ชันไบนารีที่เสถียรได้ที่ไหน ฉันไม่ต้องการสร้างแหล่งที่มาของคุณภาพที่ไม่รู้จักทุกแหล่ง
Thomas Weller

ฉันเดาที่นี่github.com/Microsoft/automatic-graph-layoutไม่แน่ใจว่ารวมรุ่นไบนารีหรือไม่
Patrick จากทีม NDepend

12

โพสต์ก่อนหน้าของฉันถูกลบฉันจะพยายามให้คำตอบที่ซับซ้อนมากขึ้นสำหรับคำถามนี้ คำตอบสูงสุดไม่ได้เป็นจริงอีกต่อไปเนื่องจากไลบรารี Graph # ล้าสมัยอย่างมาก

ฉันจะแนะนำให้ตรวจสอบการรวมกันของGraphXและQuickgraph GraphX ​​เป็นเครื่องมือแสดงผลและ Quickgraph เป็นองค์ประกอบการจัดการกราฟและการดำเนินการทางคณิตศาสตร์

ห้องสมุด GrpahX ถูกเข้ารหัสสำหรับ WPF 4.0 และ METRO มีคุณสมบัติมากมายที่ Graph # ขาด:

  • ปรับปรุงประสิทธิภาพการแสดงผลสำหรับกราฟขนาดใหญ่
  • การสนับสนุนการกำหนดเส้นทางและการรวมกลุ่มตัวเลือก Edge อื่น ๆ อีกมากมาย
  • การควบคุมการซูมที่เพิ่มขึ้นซึ่งรองรับหน้าต่างภาพรวมและการเลือกจุดยอดหลายจุด
  • เอกสารและตัวอย่างมากมาย

นอกจากนี้ GraphX ​​ยังรองรับอัลกอริทึมการจัดวางต้นฉบับทั้งหมดจาก Graph # กรุณาเยี่ยมชมhttp://panthernet.ru/forumหากคุณมีคำถามใด ๆ !


ลิงก์ GraphX ​​ไม่ทำงาน
xabush

ไม่เพิ่งมีปัญหาร้ายแรงเกี่ยวกับไวรัสในโฮสติ้ง ฟอรัมออนไลน์
Alexander Smirnov

9

มีQuickGraphทำงานได้ดีและมีอัลกอริทึมพื้นฐานส่วนใหญ่


ดี แต่ดูเหมือนจะวาดกราฟไม่ได้
กินเอลิเซียม

2
จริง. ฉันรู้สึกว่าคุณถามเกี่ยวกับการคำนวณด้วยกราฟมากกว่าการวาดกราฟ มันส่งออกไปยังรูปแบบที่ใช้โดยเครื่องมือการแสดงผลที่แตกต่างกันสองสามอย่าง
Doug McClean

5

ดูที่ yWorks: http://www.yworks.com/en/index.html

มีห้องสมุดดีๆไม่มากจากที่ฉันเคยเห็น


1
ดูเหมือนจะยอดเยี่ยม แต่ 7k สำหรับห้องสมุดนั้น.. มากเกินไปสำหรับฉัน
กินเอลิเซียม

น่าประหลาดใจนั่นคือหนึ่งในตัวเลือกที่ถูกกว่า!
AS

1
มันเป็น 7k แต่ฉันเคยสนุกกับ API มากกว่าไลบรารี yWorks .NET และ WPF
Matthew Ruston

5

คุณสามารถใช้ NodeXL API จาก Microsoft Research ได้ที่: http://www.codeplex.com/NodeXLแต่มีการถามคำถามที่คล้ายกันที่: /programming/44090/do-you-know-any - กราฟแสดงภาพไลบรารีสำหรับสุทธิ /


ฟังดูดี แต่จากที่ฉันเห็นตอนนี้จากตัวอย่างของพวกเขาดูเหมือนว่าโดยพื้นฐานแล้วคุณต้องวาดทุกอย่างด้วยตัวเองซึ่งจะเป็นปัญหาเพราะฉันมีโหนดนับพันให้วาด
กินเอลิเซียม

ฉันไม่แน่ใจว่าคุณหมายถึงอะไรโดย 'การวาดทุกอย่างด้วยตัวเอง' NodeXL เป็นทั้งส่วนขยายสำหรับ Excel แต่ยังเป็น API สำหรับ. Net และรองรับอัลกอริทึมการจัดวางกราฟเช่นรูปแบบบังคับ (Fruchterman-Reingold หรือ Harel-Koren multiscale อย่างรวดเร็ว) หรือเค้าโครงเรขาคณิต (วงกลมเส้นตารางเกลียว ฯลฯ ) ฉันได้ใช้มันด้วยตัวเองและไม่มีงาน 'คู่มือ' มากนัก
DrDee

ฉันกำลังพูดถึงสิ่งอื่นฉันสับสนกับคำตอบที่ต่างออกไป แต่ดูเหมือนว่า NodeXL ต้องใช้ Office 2007 ฉันไม่ได้ติดตั้ง office ด้วยซ้ำ
กินเอลิเซียม

ฉันติดตั้งสิ่งนี้แล้ว ตอนนี้ฉันควรใช้มันจาก c # อย่างไร?
กินเอลิเซียม

ตรวจสอบให้แน่ใจว่าคุณติดตั้งไลบรารี API ไม่ใช่ส่วนขยาย Office Excel API มีอยู่ที่: codeplex.com/NodeXL/Release/… เนมสเปซของ NodeXL คือ Microsoft.NodeXL ดังนั้นคุณสามารถนำเข้าโดยใช้: นำเข้า Microsoft.NodeXL.Core นำเข้า Microsoft.NodeXL.Visualization (ฉันคิดว่าสองสิ่งนี้มากที่สุด ห้องสมุดที่สำคัญ) ตรวจสอบให้แน่ใจว่าเส้นทางของ IDE ของคุณมีโฟลเดอร์ NodeXL
DrDee

3

ฉันไม่ได้พยายามมันยังวิ่งข้าม แต่การเสนอขายที่น่าสนใจจาก MS วิจัยเพื่อการแสดงผลกราฟกำกับไมโครซอฟท์อัตโนมัติกราฟเค้าโครง

ลองใช้ "กราฟกำกับ" หรือ "กราฟ" สำหรับข้อความค้นหา ฉันได้รับความนิยมมาก


3

ลองดูที่Satsuma เขียนด้วยภาษา C # ซึ่งส่วนใหญ่เป็นอัลกอริทึมกราฟ แต่ก็มีเค้าโครงกราฟพื้นฐานและการวาดด้วย


2

ลองดู http://quickgraph.codeplex.com/ พวกเขารองรับการแสดงภาพผ่าน DotViz และ Glee

สำหรับการแสดงภาพฉันจะตรวจสอบด้วย

http://flare.prefuse.org/

แม้ว่าแฟลชจะดูน่าสนใจมากและอย่างน้อยก็มีการแสดงภาพต้นไม้แม้ว่าคุณอาจสามารถเกลี้ยกล่อมกราฟที่ไม่ได้ชี้นำบางส่วนออกไป


0

นั่นไม่มีเพียงตัวอย่างของอัลกอริทึมกราฟที่สร้างขึ้นจากโครงสร้างข้อมูลการรวบรวมหรือไม่? ฉันเดาว่าคำถามถามอะไรเช่นไลบรารี C ++ BGL ( boost.org/doc/libs/1_40_0/libs/graph/doc/index.html )
Pontus Gagge

คุณพูดถูกพอนทัส มีคลาสกราฟในตัวอย่างคู่มือผู้ใช้ แต่ไม่ได้เป็นส่วนหนึ่งของไลบรารี เป็นตัวอย่างที่สร้างไว้ด้านบน และยุ่งเหยิงไม่สมบูรณ์จากการดูที่มา
Paul Sasik

แต่ใช้ได้ดีเหมือนเป็นแนวทาง .......
jjchiw

0

บัดดี้ฉันคิดว่านี่คือสิ่งที่คุณต้องการ!

บทความนี้นำเสนอ Generic Graph Library, 100% C # ไลบรารีนี้เป็นความพยายามในการพอร์ต Boost Graph Library (BGL) จาก C ++ เป็น C #


1
ใช่ แต่มีปัญหาหลายประการเมื่อพยายามวาดกราฟจากสิ่งที่ฉันได้อ่านในความคิดเห็นของ codeproject
กินเอลิเซียม

0

เราใช้ZedGraphซึ่งเป็นโครงการโอเพ่นซอร์สที่เขียนด้วยภาษา C # ดังนั้นคุณสามารถปรับแต่งได้หากคุณรู้สึกว่าจำเป็น ตอบสนองความต้องการของเราซึ่งดูเหมือนว่าใกล้เคียงกับที่คุณอธิบายไว้มาก มีไซต์วิกิสำหรับโครงการพร้อมตัวอย่างที่ดีงาม


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.