SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
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!

Contenu connexe

Similaire à 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
 

Plus de 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
 
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
 

Plus de 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
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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...
 
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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

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!