SlideShare a Scribd company logo
1 of 33
Download to read offline
About data visualization


 Datavisualization is the science of
 visual representation of data.
About data visualization


 Representing  large amounts of disparate
 information in a visual form often allows
 you to see patterns that would otherwise
 be buried in vast, unconnected data sets.
About data visualization


 The effectiveness in conveying ideas
 is achieved by combining both
 aesthetics and functionality.
What the Web brings into data visualization
 Generation and storage of massive
  and growing amounts of data.
What the Web brings into data visualization
 Generation   and storage of massive
  and growing amounts of data.
 A means to create and share many
  kinds of visualizations
What the Web brings into data visualization
 Generation   and storage of massive
  and growing amounts of data.
 A means to create and share many
  kinds of visualizations
 Unprecedented access to data
What the Web brings into data visualization
 Generation   and storage of massive
  and growing amounts of data.
 A means to create and share many
  kinds of visualizations
 Unprecedented access to data
 Animations and user interactions
Social data
 A bigpart of the content available
  on the web is created by the users.
Social data
 A big part of the content available
  on the web is created by the users.
 This represents the largest amount
  of data on the Web that needs to be
  processed and visualized.
Social data
 A big part of the content available
  on the web is created by the users.
 This represents the largest amount
  of data on the Web that needs to be
  processed and visualized.
 Important derivative information
  may surface from creative ways of
  exploiting this data.
Using JavaScript libraries for
data visualization
 Anyoneaccessing the Web has a browser
 and every browser supports JavaScript.
Using JavaScript libraries for
 data visualization
 Anyone    accessing the Web has a browser
  and every browser supports JavaScript.
 JavaScript - very powerful tool to develop
  client-side web applications, especially
  those that require user interaction.
Using JavaScript libraries for
 data visualization
 Anyone    accessing the Web has a browser
  and every browser supports JavaScript.
 JavaScript - very powerful tool to develop
  client-side web applications, especially
  those that require user interaction.
 Therefore JavaScript libraries for data
  visualization would hold an incredibly big
  advantage over any other tool used with
  the same purpose.
Using JavaScript libraries for
data visualization


 16 Javascript Libraries for Visualizations
 We have chosen to focus on
  Processing.js and Raphaël
Processing.js

 Makes Processing code run in a webpage.
 Makes use of the HTML5 canvas.
 How    to use Processing.js
   Write pure Processing code
   Write pure JavaScript code
   Combine Processing with JavaScript
Raphaël


 JavaScript  library that simplifies work
  with vector graphics on the web.
 Uses SVG and VML
 Extension   for charts: gRaphaël
Processing.js and Raphaël - Comparison
 Drawing
   Canvas vs. SVG
   Raster vs. Vectorial
Processing.js and Raphaël - Comparison
 Drawing
   Canvas vs. SVG
   Raster vs. Vectorial

 Coding
   Java + JavaScript vs. only JavaScript
Processing.js and Raphaël - Comparison
 Drawing
   Canvas vs. SVG
   Raster vs. Vectorial

 Coding
   Java + JavaScript vs. only JavaScript

 Speed
   if a single element is changed
    ○ Raphael can update only that
    ○ Processing must refresh the entire scene
   if the window is rescaled
    ○ Raphael does nothing and the image maintains its quality
    ○ Processing must generate the entire scene again
Processing.js and Raphaël - Comparison
 Functionality
   Processing.js has many features inherited from
    Processing. This allows the user to create very
    complex drawings.
   Raphael has a good reference, but not that large as
    Processing. Although for simple to more complex
    tasks it has many features.
Processing.js and Raphaël - Comparison
 Functionality
   Processing.js has many features inherited from
    Processing. This allows the user to create very
    complex drawings.
   Raphael has a good reference, but not that large as
    Processing. Although for simple to more complex
    tasks it has many features.
 Documentation
   Both frameworks have a well-documented
    reference with examples and drawings
Case studies
 Social data to use - what Twitter
  provides through its API
Case studies
 Social data to use - what Twitter
  provides through its API
 Idea: a small application that takes
  tweets from various Twitter accounts
  and displays them in a chart.
Case studies
 Social data to use - what Twitter
  provides through its API
 Idea: a small application that takes
  tweets from various Twitter accounts
  and displays them in a chart.
 This chart shows how many tweets
  were posted in every day of the week
  for every user.
Case studies
 Social data to use - what Twitter
  provides through its API
 Idea: a small application that takes
  tweets from various Twitter accounts
  and displays them in a chart.
 This chart shows how many tweets
  were posted in every day of the week
  for every user.
 See our video demo, which shows
  how the two applications work
Case study for Processing.js
Application demo | Source code




            What the chart looks like for various entries
Case study for Processing.js
Application demo | Source code

//Draws weekday labels
for(int i=0; i<days.length; i++)
{
        textAlign(CENTER);
        text(days[i], startX + i * (maxRadius + distance * 2) +
        (maxRadius + distance * 2)/2,        startY - 15);
}


//Linear scaling transform of number of tweets into circle radius
float rad = (stats[i]-minTweets)/(maxTweets-minTweets) *
       (maxRadius-minRadius) + minRadius;
//Compute position and draw circle
int x = startX + (maxRadius + distance * 2)/2 +
       (maxRadius + distance * 2) * i;
int y = startY + (maxRadius + distance * 2)/2 +
       (maxRadius + distance * 2) * index;
ellipse( x, y, rad, rad );
Case study for Raphaël
Application demo | Source code




            What the chart looks like for various entries
Case study for Raphaël
Application demo | Source code


paper = Raphael("canvas", 900, 400);

paper.text(x, y, text)

/* To resize the text, another call is used but is chained to
the previous one like this:
*/
attr = {font: "12px Helvetica", opacity: 1};
paper.text(x, y, text).attr(attr);

var circle = paper.ellipse(x, y, rad, rad);

circle.attr("fill", "#123214");
circle.attr("stroke", "#fff");
Conclusions
 Both  Processing.js and Raphaël have
  their advantages and disadvantages.
 we have concluded that the choice
  between the two highly depends on the
  type of project you want to develop and
  your previous experience with JavaScript
 In the end, it all comes down to the needs
  of the developer.
References
1.   Educase Learning Initiative, "7 things you should know
     about Data Visualization", October 2007
2.   Michael Friendly, "Milestones in the history of thematic
     cartography, statistical graphics, and data visualization",
     August 24, 2009
3.   Vitaly Friedman, "Data Visualization and Infographics", in:
     Graphics, Monday Inspiration, January 14th, 2008.
4.   Fernanda Viegas and Martin Wattenberg, "How To Make
     Data Look Sexy", CNN.com, April 19, 2011.
5.   Benjamin Wiederkehr, 16 Javascript Libraries for
     Visualizations, July 29, 2009
6.   Processing.js – Learning
7.   Processing.js Quick Start - JavaScript Developer Edition
8.   Pomax's guide to Processing.js
9.   Raphael documentation
Authors
    CristinaŞerban, I3B2
    Adrian Dumitru Popovici, I3B1
{cristina.serban, popovici.adrian}info.uaic.ro

    Faculty of Computer Science,
Univeristy Alexandru Ioan Cuza of Iaşi

More Related Content

Similar to Data Visualization: A Guide to JavaScript Libraries

Overview of tools for data analysis and visualisation (2021)
Overview of tools for data analysis and visualisation (2021)Overview of tools for data analysis and visualisation (2021)
Overview of tools for data analysis and visualisation (2021)Marié Roux
 
Overview data analyis and visualisation tools 2020
Overview data analyis and visualisation tools 2020Overview data analyis and visualisation tools 2020
Overview data analyis and visualisation tools 2020Marié Roux
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails PresentationPaul Pajo
 
DSL (Domain Specific Language) for Maps Mashups
DSL (Domain Specific Language) for Maps MashupsDSL (Domain Specific Language) for Maps Mashups
DSL (Domain Specific Language) for Maps Mashupsaliraza786
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web DevelopmentRobert J. Stein
 
Drupal 8 and iOS - an Open Source App
Drupal 8 and iOS - an Open Source AppDrupal 8 and iOS - an Open Source App
Drupal 8 and iOS - an Open Source ApplittleMAS
 
The Recent Pronouncement Of The World Wide Web (Www) Had
The Recent Pronouncement Of The World Wide Web (Www) HadThe Recent Pronouncement Of The World Wide Web (Www) Had
The Recent Pronouncement Of The World Wide Web (Www) HadDeborah Gastineau
 
Cytoscape and the Web
Cytoscape and the WebCytoscape and the Web
Cytoscape and the WebKeiichiro Ono
 
Doing data visualizations with tableau
Doing data visualizations with tableauDoing data visualizations with tableau
Doing data visualizations with tableauRay Schwartz
 
Reaktive Programmierung mit den Reactive Extensions (Rx)
Reaktive Programmierung mit den Reactive Extensions (Rx)Reaktive Programmierung mit den Reactive Extensions (Rx)
Reaktive Programmierung mit den Reactive Extensions (Rx)NETUserGroupBern
 
Gapand 2017 - Diseñando Arquitecturas Serverless en Azure
Gapand 2017 - Diseñando Arquitecturas Serverless en AzureGapand 2017 - Diseñando Arquitecturas Serverless en Azure
Gapand 2017 - Diseñando Arquitecturas Serverless en AzureAlberto Diaz Martin
 
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code CampDoing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code CampChris Love
 
Comprehensive Guide to React Development 2022.pptx
Comprehensive Guide to React Development 2022.pptxComprehensive Guide to React Development 2022.pptx
Comprehensive Guide to React Development 2022.pptx75waytechnologies
 
Doing data visualizations with tableau
Doing data visualizations with tableauDoing data visualizations with tableau
Doing data visualizations with tableauRay Schwartz
 
Make Your Data Count: Tips & Tools for Visual Reporting
Make Your Data Count: Tips & Tools for Visual Reporting Make Your Data Count: Tips & Tools for Visual Reporting
Make Your Data Count: Tips & Tools for Visual Reporting Innovation Network
 
Data Structure Graph DMZ #DMZone
Data Structure Graph DMZ #DMZoneData Structure Graph DMZ #DMZone
Data Structure Graph DMZ #DMZoneDoug Needham
 

Similar to Data Visualization: A Guide to JavaScript Libraries (20)

Overview of tools for data analysis and visualisation (2021)
Overview of tools for data analysis and visualisation (2021)Overview of tools for data analysis and visualisation (2021)
Overview of tools for data analysis and visualisation (2021)
 
Overview data analyis and visualisation tools 2020
Overview data analyis and visualisation tools 2020Overview data analyis and visualisation tools 2020
Overview data analyis and visualisation tools 2020
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails Presentation
 
DSL (Domain Specific Language) for Maps Mashups
DSL (Domain Specific Language) for Maps MashupsDSL (Domain Specific Language) for Maps Mashups
DSL (Domain Specific Language) for Maps Mashups
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
 
Drupal 8 and iOS - an Open Source App
Drupal 8 and iOS - an Open Source AppDrupal 8 and iOS - an Open Source App
Drupal 8 and iOS - an Open Source App
 
The Recent Pronouncement Of The World Wide Web (Www) Had
The Recent Pronouncement Of The World Wide Web (Www) HadThe Recent Pronouncement Of The World Wide Web (Www) Had
The Recent Pronouncement Of The World Wide Web (Www) Had
 
Cytoscape and the Web
Cytoscape and the WebCytoscape and the Web
Cytoscape and the Web
 
We are the music makers and we are the dreamers of dreams
We are the music makers and we are the dreamers of dreamsWe are the music makers and we are the dreamers of dreams
We are the music makers and we are the dreamers of dreams
 
Doing data visualizations with tableau
Doing data visualizations with tableauDoing data visualizations with tableau
Doing data visualizations with tableau
 
Reaktive Programmierung mit den Reactive Extensions (Rx)
Reaktive Programmierung mit den Reactive Extensions (Rx)Reaktive Programmierung mit den Reactive Extensions (Rx)
Reaktive Programmierung mit den Reactive Extensions (Rx)
 
Gapand 2017 - Diseñando Arquitecturas Serverless en Azure
Gapand 2017 - Diseñando Arquitecturas Serverless en AzureGapand 2017 - Diseñando Arquitecturas Serverless en Azure
Gapand 2017 - Diseñando Arquitecturas Serverless en Azure
 
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code CampDoing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
 
VIZLAND Research Overview
VIZLAND Research OverviewVIZLAND Research Overview
VIZLAND Research Overview
 
Comprehensive Guide to React Development 2022.pptx
Comprehensive Guide to React Development 2022.pptxComprehensive Guide to React Development 2022.pptx
Comprehensive Guide to React Development 2022.pptx
 
Doing data visualizations with tableau
Doing data visualizations with tableauDoing data visualizations with tableau
Doing data visualizations with tableau
 
Rohil
RohilRohil
Rohil
 
Volunteer.rb
Volunteer.rbVolunteer.rb
Volunteer.rb
 
Make Your Data Count: Tips & Tools for Visual Reporting
Make Your Data Count: Tips & Tools for Visual Reporting Make Your Data Count: Tips & Tools for Visual Reporting
Make Your Data Count: Tips & Tools for Visual Reporting
 
Data Structure Graph DMZ #DMZone
Data Structure Graph DMZ #DMZoneData Structure Graph DMZ #DMZone
Data Structure Graph DMZ #DMZone
 

Recently uploaded

Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room servicediscovermytutordmt
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024Janet Corral
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 

Recently uploaded (20)

Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
9548086042 for call girls in Indira Nagar with room service
9548086042  for call girls in Indira Nagar  with room service9548086042  for call girls in Indira Nagar  with room service
9548086042 for call girls in Indira Nagar with room service
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
General AI for Medical Educators April 2024
General AI for Medical Educators April 2024General AI for Medical Educators April 2024
General AI for Medical Educators April 2024
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 

Data Visualization: A Guide to JavaScript Libraries

  • 1.
  • 2. About data visualization  Datavisualization is the science of visual representation of data.
  • 3. About data visualization  Representing large amounts of disparate information in a visual form often allows you to see patterns that would otherwise be buried in vast, unconnected data sets.
  • 4. About data visualization  The effectiveness in conveying ideas is achieved by combining both aesthetics and functionality.
  • 5. What the Web brings into data visualization  Generation and storage of massive and growing amounts of data.
  • 6. What the Web brings into data visualization  Generation and storage of massive and growing amounts of data.  A means to create and share many kinds of visualizations
  • 7. What the Web brings into data visualization  Generation and storage of massive and growing amounts of data.  A means to create and share many kinds of visualizations  Unprecedented access to data
  • 8. What the Web brings into data visualization  Generation and storage of massive and growing amounts of data.  A means to create and share many kinds of visualizations  Unprecedented access to data  Animations and user interactions
  • 9. Social data  A bigpart of the content available on the web is created by the users.
  • 10. Social data  A big part of the content available on the web is created by the users.  This represents the largest amount of data on the Web that needs to be processed and visualized.
  • 11. Social data  A big part of the content available on the web is created by the users.  This represents the largest amount of data on the Web that needs to be processed and visualized.  Important derivative information may surface from creative ways of exploiting this data.
  • 12. Using JavaScript libraries for data visualization  Anyoneaccessing the Web has a browser and every browser supports JavaScript.
  • 13. Using JavaScript libraries for data visualization  Anyone accessing the Web has a browser and every browser supports JavaScript.  JavaScript - very powerful tool to develop client-side web applications, especially those that require user interaction.
  • 14. Using JavaScript libraries for data visualization  Anyone accessing the Web has a browser and every browser supports JavaScript.  JavaScript - very powerful tool to develop client-side web applications, especially those that require user interaction.  Therefore JavaScript libraries for data visualization would hold an incredibly big advantage over any other tool used with the same purpose.
  • 15. Using JavaScript libraries for data visualization  16 Javascript Libraries for Visualizations  We have chosen to focus on Processing.js and Raphaël
  • 16. Processing.js  Makes Processing code run in a webpage.  Makes use of the HTML5 canvas.  How to use Processing.js  Write pure Processing code  Write pure JavaScript code  Combine Processing with JavaScript
  • 17. Raphaël  JavaScript library that simplifies work with vector graphics on the web.  Uses SVG and VML  Extension for charts: gRaphaël
  • 18. Processing.js and Raphaël - Comparison  Drawing  Canvas vs. SVG  Raster vs. Vectorial
  • 19. Processing.js and Raphaël - Comparison  Drawing  Canvas vs. SVG  Raster vs. Vectorial  Coding  Java + JavaScript vs. only JavaScript
  • 20. Processing.js and Raphaël - Comparison  Drawing  Canvas vs. SVG  Raster vs. Vectorial  Coding  Java + JavaScript vs. only JavaScript  Speed  if a single element is changed ○ Raphael can update only that ○ Processing must refresh the entire scene  if the window is rescaled ○ Raphael does nothing and the image maintains its quality ○ Processing must generate the entire scene again
  • 21. Processing.js and Raphaël - Comparison  Functionality  Processing.js has many features inherited from Processing. This allows the user to create very complex drawings.  Raphael has a good reference, but not that large as Processing. Although for simple to more complex tasks it has many features.
  • 22. Processing.js and Raphaël - Comparison  Functionality  Processing.js has many features inherited from Processing. This allows the user to create very complex drawings.  Raphael has a good reference, but not that large as Processing. Although for simple to more complex tasks it has many features.  Documentation  Both frameworks have a well-documented reference with examples and drawings
  • 23. Case studies  Social data to use - what Twitter provides through its API
  • 24. Case studies  Social data to use - what Twitter provides through its API  Idea: a small application that takes tweets from various Twitter accounts and displays them in a chart.
  • 25. Case studies  Social data to use - what Twitter provides through its API  Idea: a small application that takes tweets from various Twitter accounts and displays them in a chart.  This chart shows how many tweets were posted in every day of the week for every user.
  • 26. Case studies  Social data to use - what Twitter provides through its API  Idea: a small application that takes tweets from various Twitter accounts and displays them in a chart.  This chart shows how many tweets were posted in every day of the week for every user.  See our video demo, which shows how the two applications work
  • 27. Case study for Processing.js Application demo | Source code What the chart looks like for various entries
  • 28. Case study for Processing.js Application demo | Source code //Draws weekday labels for(int i=0; i<days.length; i++) { textAlign(CENTER); text(days[i], startX + i * (maxRadius + distance * 2) + (maxRadius + distance * 2)/2, startY - 15); } //Linear scaling transform of number of tweets into circle radius float rad = (stats[i]-minTweets)/(maxTweets-minTweets) * (maxRadius-minRadius) + minRadius; //Compute position and draw circle int x = startX + (maxRadius + distance * 2)/2 + (maxRadius + distance * 2) * i; int y = startY + (maxRadius + distance * 2)/2 + (maxRadius + distance * 2) * index; ellipse( x, y, rad, rad );
  • 29. Case study for Raphaël Application demo | Source code What the chart looks like for various entries
  • 30. Case study for Raphaël Application demo | Source code paper = Raphael("canvas", 900, 400); paper.text(x, y, text) /* To resize the text, another call is used but is chained to the previous one like this: */ attr = {font: "12px Helvetica", opacity: 1}; paper.text(x, y, text).attr(attr); var circle = paper.ellipse(x, y, rad, rad); circle.attr("fill", "#123214"); circle.attr("stroke", "#fff");
  • 31. Conclusions  Both Processing.js and Raphaël have their advantages and disadvantages.  we have concluded that the choice between the two highly depends on the type of project you want to develop and your previous experience with JavaScript  In the end, it all comes down to the needs of the developer.
  • 32. References 1. Educase Learning Initiative, "7 things you should know about Data Visualization", October 2007 2. Michael Friendly, "Milestones in the history of thematic cartography, statistical graphics, and data visualization", August 24, 2009 3. Vitaly Friedman, "Data Visualization and Infographics", in: Graphics, Monday Inspiration, January 14th, 2008. 4. Fernanda Viegas and Martin Wattenberg, "How To Make Data Look Sexy", CNN.com, April 19, 2011. 5. Benjamin Wiederkehr, 16 Javascript Libraries for Visualizations, July 29, 2009 6. Processing.js – Learning 7. Processing.js Quick Start - JavaScript Developer Edition 8. Pomax's guide to Processing.js 9. Raphael documentation
  • 33. Authors  CristinaŞerban, I3B2  Adrian Dumitru Popovici, I3B1 {cristina.serban, popovici.adrian}info.uaic.ro Faculty of Computer Science, Univeristy Alexandru Ioan Cuza of Iaşi