การแสดงกราฟด้วยจุดยอดหนึ่งล้าน


17

เครื่องมือที่ดีที่สุดในการใช้แสดงภาพ (วาดจุดยอดและขอบ) กราฟที่มีจุดยอด 1000000 คืออะไร กราฟมีประมาณ 50,000 อัน และฉันสามารถคำนวณตำแหน่งของจุดยอดและจุดแต่ละจุด

ฉันกำลังคิดเกี่ยวกับการเขียนโปรแกรมเพื่อสร้าง svg ข้อเสนอแนะอื่น ๆ ?


คุณสามารถลอง Graphviz ... ไม่แน่ใจว่ามันชั่งน้ำหนักได้ถึงล้านของจุด ....
Debasis

หวังว่าคำตอบสำหรับคำถามนี้สามารถสัมผัสได้ถึงวิธีสร้างกราฟเช่นนี้: medium.com/i-data/…
shadowtalker

สวัสดี @Cici โดยปกติแล้วคำถามเกี่ยวกับเครื่องมือที่แนะนำจะถูกนำเสนอในเว็บไซต์ SE และอื่น ๆ เนื่องจากพวกเขาเพียงแค่เชิญความคิดเห็นมากมาย
Sean Owen

คำตอบ:


19

ฉันยังแนะนำGephiซอฟต์แวร์ ( https://gephi.github.io ) ซึ่งดูเหมือนว่าจะมีประสิทธิภาพมาก บางข้อมูลเพิ่มเติมเกี่ยวกับการใช้Gephiกับเครือข่ายขนาดใหญ่สามารถพบได้ที่นี่และอื่น ๆ โดยทั่วไปที่นี่ Cytoscape( http://www.cytoscape.org ) เป็นอีกทางเลือกหนึ่งGephiซึ่งเป็นอีกแพลตฟอร์มหนึ่งที่ได้รับความนิยมสำหรับการวิเคราะห์เครือข่ายที่ซับซ้อนและการสร้างภาพข้อมูล

หากคุณต้องการทำงานกับเครือข่ายโดยทางโปรแกรม (รวมถึงการสร้างภาพข้อมูล) ใน R, Python หรือ C / C ++ คุณสามารถตรวจสอบigraphคอลเล็กชันของห้องสมุดได้ เมื่อพูดถึง R คุณอาจพบว่ามีการโพสต์บล็อกต่อไปนี้ที่น่าสนใจ: ในการใช้ R กับ Cytoscape ( http://www.vesnam.com/Rblog/viznets1 ) และการใช้ R กับ Gephi ( http://www.vesnam.com/ Rblog / viznets2 )

สำหรับรายการที่ครอบคลุมของซอฟต์แวร์การวิเคราะห์เครือข่ายและการสร้างภาพรวมถึงการเปรียบเทียบและบทวิจารณ์บางประการคุณอาจต้องการตรวจสอบหน้าต่อไปนี้: 1) http://wiki.cytoscape.org/Network_analysis_links ; 2) http://www.kdnuggets.com/software/social-network-analysis.html ; 3) http://www.activatenetworks.net/social-network-analysis-sna-software-review


8

https://gephi.github.io/บอกว่าสามารถจัดการกับขอบได้ล้านอัน หากกราฟของคุณมีจุดยอด 1000000 จุดและมีเพียง 50,000 เส้นเท่านั้นจุดยอดส่วนใหญ่ของคุณจะไม่มีขอบใด ๆ

ในความเป็นจริงข้อมูลจำเพาะของ Gephi เป็นตัวอย่างที่สองของคุณ: "เครือข่ายมากถึง 50,000 โหนดและ 1,000,000 ขอบ"


8

ฉันคิดว่าที่Gephiอาจเผชิญกับปัญหาหน่วยความจำไม่เพียงพอคุณจะต้องมี RAM อย่างน้อย 8Gb แม้ว่าจำนวนของขอบจะไม่ใหญ่มาก

อาจเป็นไปได้ว่าเครื่องมือที่เหมาะสมกว่าในกรณีนี้GraphVizคือ มันเป็นเครื่องมือบรรทัดคำสั่งสำหรับการสร้างภาพเครือข่ายและน่าจะทนต่อขนาดกราฟได้มากกว่า ยิ่งไปกว่านั้นผมจำได้ว่าGraphVizมันเป็นไปได้ที่จะใช้พิกัดที่คำนวณล่วงหน้าเพื่ออำนวยความสะดวกในการคำนวณ

ฉันพยายามค้นหาตัวอย่างการใช้งานจริงGraphVizกับกราฟขนาดใหญ่ แต่ไม่ประสบความสำเร็จ แม้ว่าผมพบว่าการอภิปรายที่คล้ายกันในวิทยาศาสตร์


4

การรายงานย้อนกลับ: ฉันลงเอยด้วยการเข้ารหัส graphml และใช้ yEd เพื่อการสร้างภาพ (เพราะฉันคุ้นเคยกับชุดค่าผสมนี้ฉันเดิมพัน gephi หรือ graphviz จะทำงานได้ดีและอาจดีกว่า) ตั้งแต่ฉันคำนวณตำแหน่งของโหนดทั้งหมดหน่วยความจำก็ไม่ใหญ่มากนัก การเข้ารหัส graphml นั้นง่ายขึ้นเล็กน้อยเมื่อเปรียบเทียบกับการเข้ารหัส svg เนื่องจากฉันไม่จำเป็นต้องระบุตำแหน่งของขอบอย่างชัดเจน


2

PajekXXLได้รับการออกแบบมาเพื่อรองรับเครือข่ายขนาดใหญ่ แต่ Pajek ก็เป็นโปรแกรมที่แปลกประหลาดพร้อมกับส่วนต่อประสานที่ใช้งานง่าย


2

ฉันจะแนะนำให้ใช้ Graphexp Gephi นั้นขึ้นอยู่กับ RAM ของคอมพิวเตอร์ของคุณซึ่งมีข้อ จำกัด อย่างเห็นได้ชัด Graphexp บนจอแสดงผลในทางกลับกันมีเพียงจำนวน จำกัด เท่านั้นซึ่งคุณสามารถนำทางไปยังโหนดอื่นได้ ฉันเห็นกราฟที่มีจุดยอด 700 ล้านจุดโดยใช้ Graphexp เป็น UI และ Janusgraph โดยมี HBase เป็นที่เก็บข้อมูลส่วนหลัง https://github.com/bricaud/graphexp


จริงๆ? สำหรับฉันมันเริ่มที่จะทำให้หายใจไม่ออกเมื่อพยายามที่จะแสดงมากกว่า 100 จุดยอด
BrDaHa

ความเร็วขึ้นอยู่กับฐานข้อมูลส่วนหลังและความสามารถในการคำนวณ Graphexp เป็น UI เท่านั้น
Sandeep Kumar

ฉันรู้ว่า แต่โดย "หายใจไม่ออก" ฉันหมายถึงอัตราการรีเฟรชจะลดลงเหลือ 1-2 fps เมื่อเคลื่อนไหวโหนดที่มาบนหน้าจอ มันอาจช่วยให้ทราบว่านี่เป็น Safari เวอร์ชันล่าสุด
BrDaHa

0

ลองดูที่Graphistryพวกเขาสามารถจัดการ 1Mil nodes และ edge


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