SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Visualization of [Big] Data in Web Apps 
Andrii Gordiichuk
Data in our life
Data in our life 
Statistics and Reports 
Background information 
Interactive services 
Illustrations 
Fields of use:
Why visualization is important? 
Perception of information 
From complex to simple 
Explore the data 
Quick answers
Why visualization is important? 
Edward R. Tufte
The basic principles 
of information visualization
The basic principles of information visualization 
Image concept 
Paradigm of visualization
Image concept 
Overall 
Intermediate 
Elementary 
Value 
Process 
Overall result 
Image —the meaningful visual form, perceptible in the minimum instant of vision; (Jacques Bertin) 
Levels of reading
Paradigm of visualization 
“Overview first, zoom and filter, then details-on-demand.” 
(Ben Shneiderman) 
Connect 
Encode 
Information visualization 
Reconfigure 
y 
x 
Select and Filter 
Zoom + Details 
Lorem ipsum
1 2 3 4 5 6 7 
8 9 3 2 1 4 5 6 4 3 2 6 7 
8 9 5 4 3 6 5 4 3 2 5 8 9 5 4 3 2 4 5 6 8 75 4 6 2 1 3 4 5 8 6 5 4 4 5 6 3 8 9 0 4 3 1 6 5 8 9 0 5 4 3 2 5 6 7 
4 3 2 5 8 9 4 3 2 1 5 6 3 4 4 6 8 4 3 2 4 5 6 8 1 2 3 4 5 6 7 
8 9 3 2 1 4 5 6 4 3 2 6 7 
8 9 5 4 3 6 5 4 3 2 5 8 9 5 4 3 2 4 5 6 8 7 
5 4 6 2 1 3 4 5 8 6 5 4 4 5 6 1 8 9 0 4 3 1 6 7 
8 9 0 5 4 3 2 5 6 7 
4 3 2 5 8 9 4 3 2 1 5 6 3 4 4 6 8 4 3 2 4 5 6 8 1 3 4 5 6 5 3 2 0 9 2 3 4 6 8 9 0 
7 
The basic principles example
Patterns for data visualization
Patterns for data visualization 
Maps 
Timeline 
Many Variables 
Networks
Technologiesfor data visualization
Technologies for Web data visualization 
SVG 
HTML5 Canvas
Canvas 
Format 
Bitmap 
Scaling 
Zoom 
Access 
Access to individual pixels (RGBA) 
Accessibility 
Visible only to the final raster (you can not select shapes, text, etc.) -bad for Accessibility 
Stylization 
Visual styles are set when rendering via API 
Programming 
JS API for working with primitives 
Update 
Drawing on top or a full repaint 
Events 
Objects under the cursor should be defined manually. 
Canvas -area for raster 2D graphics + JS API for interaction with the element (Canvas 2D Context). 
<canvas id="canvas"></canvas>
Canvas example 
<canvas style="position:absolute; float:left" id="gameCanvas" width="750" height="500"> 
</canvas>
SVG 
Format 
Vector 
Scaling 
Scale 
Access 
Access to (DOM)elements 
Accessibility 
Canget structure 
Stylization 
Visual styles defined attributes (CSS) 
Programming 
DOMfor work with elements 
Update 
Change individual elements 
Events 
It is easy to hang events through DOM, are handled automatically. 
SVG –Scalable Vector Graphics. XML based + DOM + JS for manipulations. 
<imgsrc="green-circle.svg" height="64" alt="Nice green circle"/> 
<object type="image/svg+xml" data="green-circle.svg" width="64" height="64" border="1"></object>
SVG example 
... 
<filter inkscape:collect="always" id="filter5340"> 
<g id="g5323" style="filter:url(#filter5340)" transform="translate(- 78.38489,-99.39986)"> <path /> <path /> <path /> </g> 
<g></g> 
... 
$('#svg').on('click', 'path', function() { $(this).css({'fill': 'green'}) });
SVG and Canvas. Usage scenarios. 
Static Images 
Screen Capture 
Documents with high accuracy for printing 
Canvas 
SVG 
Video manipulation 
Complex scenes with multiple objects 
Web Advertising 
Interactive charts and graphs 
2D Games
Performance comparison 
SVG 
Canvas 
http://msdn.microsoft.com/en-us/library/ie/gg193983(v=vs.85).aspx
What to use? 
Canvas 
SVG 
Step 1 
Understand the technology. 
Step 2 
Understand task -Pixels or Interactivity. Scalable. Requirements. 
Raster graphics generating / editing 
Overlay effects on the graphics / video 
Image analysis 
Game graphics 
Scalable interfaces 
Interactive interfaces 
Charts and graphs 
Vector image editing
Libraries and Frameworks
Libraries and Frameworks for data visualization 
D3js 
Highcharts 
Processingjs 
Raphaeljs 
Polymaps 
Flotcharts 
AmCharts
SO, HOWTOCHOOSE?
Selection criteria of the framework 
Data size 
Functionality of the framework (API) 
Customization 
Documentation 
Browser compatibility 
Maintenance 
Tests
D3.js (Data-Driven Documents) 
Core-selections, transitions, data, localization, colors, etc. 
Scales-convert between data and visual encodings 
SVG-utilities for creating Scalable Vector Graphics 
Time-parse or format times, compute calendar intervals, etc. 
Layouts-derive secondary data for positioning elements 
Geography-project spherical coordinates, latitude & longitude math 
Geometry-utilities for 2D geometry.
D3.js 
//Width and heightvar w = 500; var h = 50; 
var colors = ['#9fc43c', '#e33d29', '#34a2b3', '#f9cc13', '#528f28'] 
//Datavar dataset = [5, 10, 15, 20, 25]; 
circles.attr("r", function (d) { return d; }) 
.attr("cy", h / 2) .attr("cx", function (d, i) { return (i * d) + d; }) .attr("fill", function (d, i) { 
return colors[i]; 
}); 
w = 500 
h = 50 
//Create SVG elementvar svg = d3.select("body") .append("svg") .attr("width", 500) .attr("height", 50); var circles = svg.selectAll("circle") .data(dataset) .enter() .append("circle"); 
<svg width="500" height="50"> 
<circle></circle> 
<circle></circle> 
<circle></circle> 
<circle></circle> 
<circle></circle> 
</svg>
D3.js 
vardiameter = 960, format = d3.format(",d"), color = d3.scale.category20c(); varbubble = d3.layout.pack() .sort(null) .size([diameter, diameter]) .padding(1.5); 
d3.json("flare.json", function(error, root) { varnode = svg.selectAll(".node") .data(bubble.nodes(classes(root)) .filter(function(d) { return !d.children; })) .enter().append("g") .attr("class", "node") .attr("transform", function(d) { return "translate(" + d.x+ "," + d.y+ ")"; }); node.append("title") .text(function(d) { return d.className+ ": " + format(d.value); }); node.append("circle") .attr("r", function(d) { return d.r; }) .style("fill", function(d) { return color(d.packageName); }); node.append("text") .attr("dy", ".3em") .style("text-anchor", "middle") .text(function(d) { return d.className.substring(0, d.r/ 3); }); }); 
// Returns a flattened hierarchy containing all leaf nodes under the root. function classes(root) { } d3.select(self.frameElement).style("height", diameter + "px");
D3.js
HighchartsJS 
Numerous chart types 
Simple configuration syntax 
Dynamic 
Export and print
chart: { type: 'line', renderTo: null, width: null, height: null, zoomType: 'xy' } 
xAxis: { }, yAxis: { }, colors: [ ], navigator: { }, tooltip: { }, legend: { } 
plotOptions: { }, series: [ {name: '', data: []} ], scrollbar: {} 
HighchartsJS
Comparison D3 and Highcharts 
Fast implementation 
10+ types 
Low flexibility 
Commercial 
Slow implementation 
Unlimited types 
High flexibility 
Community 
D3js 
Highcharts
Performance criteria
Example structure 
WebSockets 
Data parsing and reconfiguration (unification) 
Creating a query to the server 
getData(); 
query 
response 
Tree data structures 
Adapters
Big Data. Performance criteria. 
Divided data (chunks), modularity, data accuracy 
Light code structure, data structures 
Optimization, testing (forecasting) 
Convenient API (command work)
+ 
+ 
+
Resources 
Edward R. Tufte (“Visual Explanations: Images and Quantities, Evidence and Narrative”) 
Jacques Bertin(“Semiology of Graphics: Diagrams, Networks, Maps”) 
Ben Shneiderman(“Readings in Information Visualization: Using Vision to Think (Interactive Technologies)”) 
http://d3js.org/ 
http://www.highcharts.com/ 
http://www.w3.org/TR/2dcontext/ 
http://www.w3.org/TR/SVG/ 
http://msdn.microsoft.com/en- us/library/ie/gg193983(v=vs.85).aspx 
http://bigdataweek.com/ 
http://www.wikipedia.org/
A 
Q 
&

Contenu connexe

Tendances (14)

STC Summit 2015 Hypergraphics for visual-first help
STC Summit 2015 Hypergraphics for visual-first helpSTC Summit 2015 Hypergraphics for visual-first help
STC Summit 2015 Hypergraphics for visual-first help
 
HTML 5 Canvas & SVG
HTML 5 Canvas & SVGHTML 5 Canvas & SVG
HTML 5 Canvas & SVG
 
Html5 canvas
Html5 canvasHtml5 canvas
Html5 canvas
 
Introduction to HTML5 Canvas
Introduction to HTML5 CanvasIntroduction to HTML5 Canvas
Introduction to HTML5 Canvas
 
HTML CANVAS
HTML CANVASHTML CANVAS
HTML CANVAS
 
SVG, CSS3, and D3 for Beginners
SVG, CSS3, and D3 for BeginnersSVG, CSS3, and D3 for Beginners
SVG, CSS3, and D3 for Beginners
 
SVGD3Angular2React
SVGD3Angular2ReactSVGD3Angular2React
SVGD3Angular2React
 
Askayworkshop
AskayworkshopAskayworkshop
Askayworkshop
 
Android Vector Drawable
 Android Vector Drawable Android Vector Drawable
Android Vector Drawable
 
Chapter 02 sprite and texture
Chapter 02 sprite and textureChapter 02 sprite and texture
Chapter 02 sprite and texture
 
Canvas - HTML 5
Canvas - HTML 5Canvas - HTML 5
Canvas - HTML 5
 
HTML 5_Canvas
HTML 5_CanvasHTML 5_Canvas
HTML 5_Canvas
 
HTML5 Canvas
HTML5 CanvasHTML5 Canvas
HTML5 Canvas
 
Css5 canvas
Css5 canvasCss5 canvas
Css5 canvas
 

En vedette

Interaction Design Project - Delhi Metro
Interaction Design Project - Delhi MetroInteraction Design Project - Delhi Metro
Interaction Design Project - Delhi Metro
Karan Dudeja
 

En vedette (20)

UI for Big Data Visualization | Jonathan Stray | UX Week 2012
UI for Big Data Visualization | Jonathan Stray | UX Week 2012UI for Big Data Visualization | Jonathan Stray | UX Week 2012
UI for Big Data Visualization | Jonathan Stray | UX Week 2012
 
Measuring Influence: The Value of 3D Data Visualization
Measuring Influence: The Value of 3D Data VisualizationMeasuring Influence: The Value of 3D Data Visualization
Measuring Influence: The Value of 3D Data Visualization
 
Top 10 Data Visualization Tools
Top 10 Data Visualization ToolsTop 10 Data Visualization Tools
Top 10 Data Visualization Tools
 
Real-Time 3D Data Visualization and Analysis of Unlimited Detail
Real-Time 3D Data Visualization and Analysis of Unlimited DetailReal-Time 3D Data Visualization and Analysis of Unlimited Detail
Real-Time 3D Data Visualization and Analysis of Unlimited Detail
 
Scientific Computing with Python Webinar March 19: 3D Visualization with Mayavi
Scientific Computing with Python Webinar March 19: 3D Visualization with MayaviScientific Computing with Python Webinar March 19: 3D Visualization with Mayavi
Scientific Computing with Python Webinar March 19: 3D Visualization with Mayavi
 
Interactive Latency in Big Data Visualization
Interactive Latency in Big Data VisualizationInteractive Latency in Big Data Visualization
Interactive Latency in Big Data Visualization
 
Interaction Design Project - Delhi Metro
Interaction Design Project - Delhi MetroInteraction Design Project - Delhi Metro
Interaction Design Project - Delhi Metro
 
Application UI Design with Large Data Sets (Cathy Lu)
Application UI Design with Large Data Sets (Cathy Lu)Application UI Design with Large Data Sets (Cathy Lu)
Application UI Design with Large Data Sets (Cathy Lu)
 
Microservices, The Basic Math
Microservices, The Basic MathMicroservices, The Basic Math
Microservices, The Basic Math
 
Big data visualization framework
Big data visualization frameworkBig data visualization framework
Big data visualization framework
 
Electrical energy auditing
Electrical energy auditingElectrical energy auditing
Electrical energy auditing
 
Workshop: Big Data Visualization for Security
Workshop: Big Data Visualization for SecurityWorkshop: Big Data Visualization for Security
Workshop: Big Data Visualization for Security
 
Data Visualisation, Business Intelligence et Big Data
Data Visualisation, Business Intelligence et Big DataData Visualisation, Business Intelligence et Big Data
Data Visualisation, Business Intelligence et Big Data
 
Qlik vs. Tableau: High-Level Comparison
Qlik vs. Tableau: High-Level ComparisonQlik vs. Tableau: High-Level Comparison
Qlik vs. Tableau: High-Level Comparison
 
Les outils de data visualisation
Les outils de data visualisationLes outils de data visualisation
Les outils de data visualisation
 
Big Data Startups - Top Visualization and Data Analytics Startups
Big Data Startups - Top Visualization and Data Analytics StartupsBig Data Startups - Top Visualization and Data Analytics Startups
Big Data Startups - Top Visualization and Data Analytics Startups
 
Sparkly Notebook: Interactive Analysis and Visualization with Spark
Sparkly Notebook: Interactive Analysis and Visualization with SparkSparkly Notebook: Interactive Analysis and Visualization with Spark
Sparkly Notebook: Interactive Analysis and Visualization with Spark
 
Big Data Visualization
Big Data VisualizationBig Data Visualization
Big Data Visualization
 
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and HailoMicroservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
 
Outils data visualisation
Outils data visualisationOutils data visualisation
Outils data visualisation
 

Similaire à Visualization of Big Data in Web Apps

Similaire à Visualization of Big Data in Web Apps (20)

Dynamic Data Visualization With Chartkick
Dynamic Data Visualization With ChartkickDynamic Data Visualization With Chartkick
Dynamic Data Visualization With Chartkick
 
Svcc 2013-d3
Svcc 2013-d3Svcc 2013-d3
Svcc 2013-d3
 
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)
 
D3 data visualization
D3 data visualizationD3 data visualization
D3 data visualization
 
Introduction to d3js (and SVG)
Introduction to d3js (and SVG)Introduction to d3js (and SVG)
Introduction to d3js (and SVG)
 
State of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open SourceState of the Art Web Mapping with Open Source
State of the Art Web Mapping with Open Source
 
D3
D3D3
D3
 
Learn D3.js in 90 minutes
Learn D3.js in 90 minutesLearn D3.js in 90 minutes
Learn D3.js in 90 minutes
 
Forge - DevCon 2016: Visual Reporting with Connected Design Data
Forge - DevCon 2016: Visual Reporting with Connected Design DataForge - DevCon 2016: Visual Reporting with Connected Design Data
Forge - DevCon 2016: Visual Reporting with Connected Design Data
 
Introduction to data visualisation with D3
Introduction to data visualisation with D3Introduction to data visualisation with D3
Introduction to data visualisation with D3
 
How to Hack a Road Trip with a Webcam, a GSP and Some Fun with Node
How to Hack a Road Trip  with a Webcam, a GSP and Some Fun with NodeHow to Hack a Road Trip  with a Webcam, a GSP and Some Fun with Node
How to Hack a Road Trip with a Webcam, a GSP and Some Fun with Node
 
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
 
Better d3 charts with tdd
Better d3 charts with tddBetter d3 charts with tdd
Better d3 charts with tdd
 
D3.js - A picture is worth a thousand words
D3.js - A picture is worth a thousand wordsD3.js - A picture is worth a thousand words
D3.js - A picture is worth a thousand words
 
SVGo: a Go Library for SVG generation
SVGo: a Go Library for SVG generationSVGo: a Go Library for SVG generation
SVGo: a Go Library for SVG generation
 
SVG - Scalable Vector Graphics
SVG - Scalable Vector GraphicsSVG - Scalable Vector Graphics
SVG - Scalable Vector Graphics
 
The D3 Toolbox
The D3 ToolboxThe D3 Toolbox
The D3 Toolbox
 
D3 Mapping Visualization
D3 Mapping VisualizationD3 Mapping Visualization
D3 Mapping Visualization
 
Techwave 2006 Advanced Datawindow Functionality
Techwave 2006 Advanced Datawindow FunctionalityTechwave 2006 Advanced Datawindow Functionality
Techwave 2006 Advanced Datawindow Functionality
 
Techwave 2006 Advanced Datawindow Techniques
Techwave 2006 Advanced Datawindow TechniquesTechwave 2006 Advanced Datawindow Techniques
Techwave 2006 Advanced Datawindow Techniques
 

Plus de EPAM

Plus de EPAM (9)

JavaScript. Code Quality.
JavaScript. Code Quality.JavaScript. Code Quality.
JavaScript. Code Quality.
 
Continuous integration for JavaScript projects
Continuous integration for JavaScript projectsContinuous integration for JavaScript projects
Continuous integration for JavaScript projects
 
Object Oriented Concepts in Real Projects
Object Oriented Concepts in Real ProjectsObject Oriented Concepts in Real Projects
Object Oriented Concepts in Real Projects
 
Modern web applications infrastructure
Modern web applications infrastructureModern web applications infrastructure
Modern web applications infrastructure
 
Reactive Extensions: classic Observer in .NET
Reactive Extensions: classic Observer in .NETReactive Extensions: classic Observer in .NET
Reactive Extensions: classic Observer in .NET
 
SOLID Principles in the real world
SOLID Principles in the real worldSOLID Principles in the real world
SOLID Principles in the real world
 
Future of the Future of E-Commerce
Future of the Future of E-CommerceFuture of the Future of E-Commerce
Future of the Future of E-Commerce
 
Bootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroBootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to Hero
 
Responsive Web in Brief
Responsive Web in BriefResponsive Web in Brief
Responsive Web in Brief
 

Dernier

Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 

Dernier (20)

Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 

Visualization of Big Data in Web Apps

  • 1. Visualization of [Big] Data in Web Apps Andrii Gordiichuk
  • 2. Data in our life
  • 3. Data in our life Statistics and Reports Background information Interactive services Illustrations Fields of use:
  • 4. Why visualization is important? Perception of information From complex to simple Explore the data Quick answers
  • 5. Why visualization is important? Edward R. Tufte
  • 6. The basic principles of information visualization
  • 7. The basic principles of information visualization Image concept Paradigm of visualization
  • 8. Image concept Overall Intermediate Elementary Value Process Overall result Image —the meaningful visual form, perceptible in the minimum instant of vision; (Jacques Bertin) Levels of reading
  • 9. Paradigm of visualization “Overview first, zoom and filter, then details-on-demand.” (Ben Shneiderman) Connect Encode Information visualization Reconfigure y x Select and Filter Zoom + Details Lorem ipsum
  • 10. 1 2 3 4 5 6 7 8 9 3 2 1 4 5 6 4 3 2 6 7 8 9 5 4 3 6 5 4 3 2 5 8 9 5 4 3 2 4 5 6 8 75 4 6 2 1 3 4 5 8 6 5 4 4 5 6 3 8 9 0 4 3 1 6 5 8 9 0 5 4 3 2 5 6 7 4 3 2 5 8 9 4 3 2 1 5 6 3 4 4 6 8 4 3 2 4 5 6 8 1 2 3 4 5 6 7 8 9 3 2 1 4 5 6 4 3 2 6 7 8 9 5 4 3 6 5 4 3 2 5 8 9 5 4 3 2 4 5 6 8 7 5 4 6 2 1 3 4 5 8 6 5 4 4 5 6 1 8 9 0 4 3 1 6 7 8 9 0 5 4 3 2 5 6 7 4 3 2 5 8 9 4 3 2 1 5 6 3 4 4 6 8 4 3 2 4 5 6 8 1 3 4 5 6 5 3 2 0 9 2 3 4 6 8 9 0 7 The basic principles example
  • 11. Patterns for data visualization
  • 12. Patterns for data visualization Maps Timeline Many Variables Networks
  • 14. Technologies for Web data visualization SVG HTML5 Canvas
  • 15. Canvas Format Bitmap Scaling Zoom Access Access to individual pixels (RGBA) Accessibility Visible only to the final raster (you can not select shapes, text, etc.) -bad for Accessibility Stylization Visual styles are set when rendering via API Programming JS API for working with primitives Update Drawing on top or a full repaint Events Objects under the cursor should be defined manually. Canvas -area for raster 2D graphics + JS API for interaction with the element (Canvas 2D Context). <canvas id="canvas"></canvas>
  • 16. Canvas example <canvas style="position:absolute; float:left" id="gameCanvas" width="750" height="500"> </canvas>
  • 17. SVG Format Vector Scaling Scale Access Access to (DOM)elements Accessibility Canget structure Stylization Visual styles defined attributes (CSS) Programming DOMfor work with elements Update Change individual elements Events It is easy to hang events through DOM, are handled automatically. SVG –Scalable Vector Graphics. XML based + DOM + JS for manipulations. <imgsrc="green-circle.svg" height="64" alt="Nice green circle"/> <object type="image/svg+xml" data="green-circle.svg" width="64" height="64" border="1"></object>
  • 18. SVG example ... <filter inkscape:collect="always" id="filter5340"> <g id="g5323" style="filter:url(#filter5340)" transform="translate(- 78.38489,-99.39986)"> <path /> <path /> <path /> </g> <g></g> ... $('#svg').on('click', 'path', function() { $(this).css({'fill': 'green'}) });
  • 19. SVG and Canvas. Usage scenarios. Static Images Screen Capture Documents with high accuracy for printing Canvas SVG Video manipulation Complex scenes with multiple objects Web Advertising Interactive charts and graphs 2D Games
  • 20. Performance comparison SVG Canvas http://msdn.microsoft.com/en-us/library/ie/gg193983(v=vs.85).aspx
  • 21. What to use? Canvas SVG Step 1 Understand the technology. Step 2 Understand task -Pixels or Interactivity. Scalable. Requirements. Raster graphics generating / editing Overlay effects on the graphics / video Image analysis Game graphics Scalable interfaces Interactive interfaces Charts and graphs Vector image editing
  • 23. Libraries and Frameworks for data visualization D3js Highcharts Processingjs Raphaeljs Polymaps Flotcharts AmCharts
  • 25. Selection criteria of the framework Data size Functionality of the framework (API) Customization Documentation Browser compatibility Maintenance Tests
  • 26. D3.js (Data-Driven Documents) Core-selections, transitions, data, localization, colors, etc. Scales-convert between data and visual encodings SVG-utilities for creating Scalable Vector Graphics Time-parse or format times, compute calendar intervals, etc. Layouts-derive secondary data for positioning elements Geography-project spherical coordinates, latitude & longitude math Geometry-utilities for 2D geometry.
  • 27. D3.js //Width and heightvar w = 500; var h = 50; var colors = ['#9fc43c', '#e33d29', '#34a2b3', '#f9cc13', '#528f28'] //Datavar dataset = [5, 10, 15, 20, 25]; circles.attr("r", function (d) { return d; }) .attr("cy", h / 2) .attr("cx", function (d, i) { return (i * d) + d; }) .attr("fill", function (d, i) { return colors[i]; }); w = 500 h = 50 //Create SVG elementvar svg = d3.select("body") .append("svg") .attr("width", 500) .attr("height", 50); var circles = svg.selectAll("circle") .data(dataset) .enter() .append("circle"); <svg width="500" height="50"> <circle></circle> <circle></circle> <circle></circle> <circle></circle> <circle></circle> </svg>
  • 28. D3.js vardiameter = 960, format = d3.format(",d"), color = d3.scale.category20c(); varbubble = d3.layout.pack() .sort(null) .size([diameter, diameter]) .padding(1.5); d3.json("flare.json", function(error, root) { varnode = svg.selectAll(".node") .data(bubble.nodes(classes(root)) .filter(function(d) { return !d.children; })) .enter().append("g") .attr("class", "node") .attr("transform", function(d) { return "translate(" + d.x+ "," + d.y+ ")"; }); node.append("title") .text(function(d) { return d.className+ ": " + format(d.value); }); node.append("circle") .attr("r", function(d) { return d.r; }) .style("fill", function(d) { return color(d.packageName); }); node.append("text") .attr("dy", ".3em") .style("text-anchor", "middle") .text(function(d) { return d.className.substring(0, d.r/ 3); }); }); // Returns a flattened hierarchy containing all leaf nodes under the root. function classes(root) { } d3.select(self.frameElement).style("height", diameter + "px");
  • 29. D3.js
  • 30. HighchartsJS Numerous chart types Simple configuration syntax Dynamic Export and print
  • 31. chart: { type: 'line', renderTo: null, width: null, height: null, zoomType: 'xy' } xAxis: { }, yAxis: { }, colors: [ ], navigator: { }, tooltip: { }, legend: { } plotOptions: { }, series: [ {name: '', data: []} ], scrollbar: {} HighchartsJS
  • 32. Comparison D3 and Highcharts Fast implementation 10+ types Low flexibility Commercial Slow implementation Unlimited types High flexibility Community D3js Highcharts
  • 34. Example structure WebSockets Data parsing and reconfiguration (unification) Creating a query to the server getData(); query response Tree data structures Adapters
  • 35. Big Data. Performance criteria. Divided data (chunks), modularity, data accuracy Light code structure, data structures Optimization, testing (forecasting) Convenient API (command work)
  • 36. + + +
  • 37. Resources Edward R. Tufte (“Visual Explanations: Images and Quantities, Evidence and Narrative”) Jacques Bertin(“Semiology of Graphics: Diagrams, Networks, Maps”) Ben Shneiderman(“Readings in Information Visualization: Using Vision to Think (Interactive Technologies)”) http://d3js.org/ http://www.highcharts.com/ http://www.w3.org/TR/2dcontext/ http://www.w3.org/TR/SVG/ http://msdn.microsoft.com/en- us/library/ie/gg193983(v=vs.85).aspx http://bigdataweek.com/ http://www.wikipedia.org/
  • 38. A Q &