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

Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
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
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
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
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991RKavithamani
 
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
 
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
 
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...RKavithamani
 
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
 

Recently uploaded (20)

Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
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
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
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
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
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
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
 
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
 
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
 
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
Privatization and Disinvestment - Meaning, Objectives, Advantages and Disadva...
 
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
 

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