SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
An Example Graph Visualization
with Processing.js
Max De Marzi
About Me
    Built the Neography Gem
    Ruby Rest bindings for Neo4j


 My Blog: http://maxdemarzi.com
 Find me on Twitter: @maxdemarzi
 Email me: maxdemarzi@gmail.com
 GitHub: http://github.com/maxdemarzi
 Slides: http://www.slideshare.net/maxdemarzi
About Processing
 Open source programming language and environment for
  creating images, animations, and interactions.
 Java “Like”
 Made by Ben Fry and Casey Reas in 2001
 Home page http://processing.org
 Checkout http://www.openprocessing.org for open
  source examples
 YouTube Processing 101 playlist:
  http://www.youtube.com/user/maxdemarzi/videos?view=pl
About Processing.js
 Sister Project to Processing
 Ported by John Resig (known for jQuery)
 Written in JavaScript, uses HTML5 Canvas element
  instead of Java Applets
 Home Page: http://processingjs.org
 Checkout http://sketchpad.cc for open source examples
What information did I want to visualize?

             Click to edit Master text styles
                 Second level
                     Third level
                        Fourth level

                            Fifth level
Processing on Canvas

              Click to edit Master text styles
                  Second level
                      Third level
                         Fourth level

                             Fifth level
Hello World in Processing
                 Click to edit Master text styles
                     Second level
                         Third level
                            Fourth level

                                Fifth level
Processing is Mouse-aware
   Click to edit Master text styles
       Second level
           Third level
              Fourth level

                  Fifth level
If you keep going…

            Click to edit Master text styles
                Second level
                    Third level
                       Fourth level

                           Fifth level
… and add links between nodes
            Click to edit Master text styles
                Second level
                    Third level
                       Fourth level

                           Fifth level
Include a side panel + Search

             Click to edit Master text styles
                 Second level
                     Third level
                        Fourth level

                            Fifth level
Node + Relationships in JSON


            Click to edit Master text styles
                Second level
                    Third level
                       Fourth level

                           Fifth level
Use Case
   Good for:
     A dozen or two donut segments (relationship types)
     A hundred or so donut slices (50 looks great)
     Node to node traversals
   Not so good for:
     Supernodes (1000+ relationships)
     Whole graph navigation
How is it Built?
   Resource Class:
       Calls fetchData via AJAX
       Contains Attributes and Values
       Fills Donut Segments
       Fills Donut Slices
       Make up Donut
       Contains loading animation
       Calls Donut.draw once loading done
More about Donut
   Donut
     Array of Donut Segments
     Sets Selected Slice
     Calls Donut Segment.draw
   Donut Segment
     Array of Donut Slices
     How much space should it take up
     Calls Slice.draw many times
     Has Tweens for expanding and contracting
   Donut Slice
     Draws itself
     Checks to see if it is selected
Behind the Scenes
   Graph Class
     Array of Nodes
     Array of Edges
   Node Class
     Knows incoming and outgoing edges
     Delegates to Resource
   Edge Class
     From node and To node
     Users co-ordinates of nodes to position itself
Things you can tweak
 Color Palette
 Specific color for Relationships Types
 Color paths
 Add support for multiple paths
 Add properties
 Add actions
 Everything, it’s just Javascript.
See more Visualizations on my blog
                      Click to edit Master text styles
                          Second level
                              Third level
                                 Fourth level

                                     Fifth level




  maxdemarzi.com


 Thank you!

Weitere ähnliche Inhalte

Ähnlich wie An example graph visualization with Processing.js

Documentation of surgical procedure
Documentation of surgical procedureDocumentation of surgical procedure
Documentation of surgical procedureHieder Al-Shami
 
Presenter manual web designing (specially for summer interns)
Presenter manual web designing (specially for summer interns)Presenter manual web designing (specially for summer interns)
Presenter manual web designing (specially for summer interns)XPERT INFOTECH
 
NCNGA 51st Annual Convention
NCNGA 51st Annual ConventionNCNGA 51st Annual Convention
NCNGA 51st Annual ConventionNCNGA
 
Aiese ci praktika mlega
Aiese ci praktika mlegaAiese ci praktika mlega
Aiese ci praktika mlegaElli Kalju
 
What to do when things go wrong with Drupal
What to do when things go wrong with DrupalWhat to do when things go wrong with Drupal
What to do when things go wrong with DrupalDrupalcampAtlanta2012
 

Ähnlich wie An example graph visualization with Processing.js (7)

Documentation of surgical procedure
Documentation of surgical procedureDocumentation of surgical procedure
Documentation of surgical procedure
 
Web server
Web serverWeb server
Web server
 
Presenter manual web designing (specially for summer interns)
Presenter manual web designing (specially for summer interns)Presenter manual web designing (specially for summer interns)
Presenter manual web designing (specially for summer interns)
 
Java 8 - KNOWARTH
Java 8 - KNOWARTHJava 8 - KNOWARTH
Java 8 - KNOWARTH
 
NCNGA 51st Annual Convention
NCNGA 51st Annual ConventionNCNGA 51st Annual Convention
NCNGA 51st Annual Convention
 
Aiese ci praktika mlega
Aiese ci praktika mlegaAiese ci praktika mlega
Aiese ci praktika mlega
 
What to do when things go wrong with Drupal
What to do when things go wrong with DrupalWhat to do when things go wrong with Drupal
What to do when things go wrong with Drupal
 

Mehr von graphdevroom

Bio4j: A pioneer graph based database for the integration of biological Big D...
Bio4j: A pioneer graph based database for the integration of biological Big D...Bio4j: A pioneer graph based database for the integration of biological Big D...
Bio4j: A pioneer graph based database for the integration of biological Big D...graphdevroom
 
Challenges in the Design of a Graph Database Benchmark
Challenges in the Design of a Graph Database Benchmark Challenges in the Design of a Graph Database Benchmark
Challenges in the Design of a Graph Database Benchmark graphdevroom
 
Cypher Query Language
Cypher Query Language Cypher Query Language
Cypher Query Language graphdevroom
 
Ontological Conjunctive Query Answering over large, semi-structured knowledge...
Ontological Conjunctive Query Answering over large, semi-structured knowledge...Ontological Conjunctive Query Answering over large, semi-structured knowledge...
Ontological Conjunctive Query Answering over large, semi-structured knowledge...graphdevroom
 
Works with persistent graphs using OrientDB
Works with persistent graphs using OrientDB Works with persistent graphs using OrientDB
Works with persistent graphs using OrientDB graphdevroom
 
Using Cascalog and Hadoop for rapid graph processing and exploration
Using Cascalog and Hadoop for rapid graph processing and exploration Using Cascalog and Hadoop for rapid graph processing and exploration
Using Cascalog and Hadoop for rapid graph processing and exploration graphdevroom
 

Mehr von graphdevroom (6)

Bio4j: A pioneer graph based database for the integration of biological Big D...
Bio4j: A pioneer graph based database for the integration of biological Big D...Bio4j: A pioneer graph based database for the integration of biological Big D...
Bio4j: A pioneer graph based database for the integration of biological Big D...
 
Challenges in the Design of a Graph Database Benchmark
Challenges in the Design of a Graph Database Benchmark Challenges in the Design of a Graph Database Benchmark
Challenges in the Design of a Graph Database Benchmark
 
Cypher Query Language
Cypher Query Language Cypher Query Language
Cypher Query Language
 
Ontological Conjunctive Query Answering over large, semi-structured knowledge...
Ontological Conjunctive Query Answering over large, semi-structured knowledge...Ontological Conjunctive Query Answering over large, semi-structured knowledge...
Ontological Conjunctive Query Answering over large, semi-structured knowledge...
 
Works with persistent graphs using OrientDB
Works with persistent graphs using OrientDB Works with persistent graphs using OrientDB
Works with persistent graphs using OrientDB
 
Using Cascalog and Hadoop for rapid graph processing and exploration
Using Cascalog and Hadoop for rapid graph processing and exploration Using Cascalog and Hadoop for rapid graph processing and exploration
Using Cascalog and Hadoop for rapid graph processing and exploration
 

Kürzlich hochgeladen

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Kürzlich hochgeladen (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

An example graph visualization with Processing.js

  • 1. An Example Graph Visualization with Processing.js Max De Marzi
  • 2. About Me Built the Neography Gem Ruby Rest bindings for Neo4j  My Blog: http://maxdemarzi.com  Find me on Twitter: @maxdemarzi  Email me: maxdemarzi@gmail.com  GitHub: http://github.com/maxdemarzi  Slides: http://www.slideshare.net/maxdemarzi
  • 3. About Processing  Open source programming language and environment for creating images, animations, and interactions.  Java “Like”  Made by Ben Fry and Casey Reas in 2001  Home page http://processing.org  Checkout http://www.openprocessing.org for open source examples  YouTube Processing 101 playlist: http://www.youtube.com/user/maxdemarzi/videos?view=pl
  • 4. About Processing.js  Sister Project to Processing  Ported by John Resig (known for jQuery)  Written in JavaScript, uses HTML5 Canvas element instead of Java Applets  Home Page: http://processingjs.org  Checkout http://sketchpad.cc for open source examples
  • 5. What information did I want to visualize?  Click to edit Master text styles  Second level  Third level  Fourth level  Fifth level
  • 6. Processing on Canvas  Click to edit Master text styles  Second level  Third level  Fourth level  Fifth level
  • 7. Hello World in Processing  Click to edit Master text styles  Second level  Third level  Fourth level  Fifth level
  • 8.
  • 10.
  • 11.
  • 12.
  • 13. Click to edit Master text styles  Second level  Third level  Fourth level  Fifth level
  • 14. If you keep going…  Click to edit Master text styles  Second level  Third level  Fourth level  Fifth level
  • 15. … and add links between nodes  Click to edit Master text styles  Second level  Third level  Fourth level  Fifth level
  • 16. Include a side panel + Search  Click to edit Master text styles  Second level  Third level  Fourth level  Fifth level
  • 17. Node + Relationships in JSON  Click to edit Master text styles  Second level  Third level  Fourth level  Fifth level
  • 18. Use Case  Good for:  A dozen or two donut segments (relationship types)  A hundred or so donut slices (50 looks great)  Node to node traversals  Not so good for:  Supernodes (1000+ relationships)  Whole graph navigation
  • 19. How is it Built?  Resource Class:  Calls fetchData via AJAX  Contains Attributes and Values  Fills Donut Segments  Fills Donut Slices  Make up Donut  Contains loading animation  Calls Donut.draw once loading done
  • 20. More about Donut  Donut  Array of Donut Segments  Sets Selected Slice  Calls Donut Segment.draw  Donut Segment  Array of Donut Slices  How much space should it take up  Calls Slice.draw many times  Has Tweens for expanding and contracting  Donut Slice  Draws itself  Checks to see if it is selected
  • 21. Behind the Scenes  Graph Class  Array of Nodes  Array of Edges  Node Class  Knows incoming and outgoing edges  Delegates to Resource  Edge Class  From node and To node  Users co-ordinates of nodes to position itself
  • 22. Things you can tweak  Color Palette  Specific color for Relationships Types  Color paths  Add support for multiple paths  Add properties  Add actions  Everything, it’s just Javascript.
  • 23. See more Visualizations on my blog  Click to edit Master text styles  Second level  Third level  Fourth level  Fifth level maxdemarzi.com Thank you!