Introduction to D3.js Interactive Data Visualization in the Web Browser

Similar documents
Team Members: Christopher Copper Philip Eittreim Jeremiah Jekich Andrew Reisdorph. Client: Brian Krzys

Visualizing MongoDB Objects in Concept and Practice

Lab 2: Visualization with d3.js

Visualizing the Top 400 Universities

Visualization of Real Time Data Driven Systems using D3 Visualization Technique

Client Overview. Engagement Situation. Key Requirements

Create Cool Lumira Visualization Extensions with SAP Web IDE Dong Pan SAP PM and RIG Analytics Henry Kam Senior Product Manager, Developer Ecosystem

Interactive Data Visualization for the Web Scott Murray

Interactive HTML Reporting Using D3 Naushad Pasha Puliyambalath Ph.D., Nationwide Insurance, Columbus, OH

<Insert Picture Here> Web 2.0 Data Visualization with JSF. Juan Camilo Ruiz Senior Product Manager Oracle Development Tools

Visualizing a Neo4j Graph Database with KeyLines

Visualizing Data: Scalable Interactivity

Sisense. Product Highlights.

What is Visualization? Information Visualization An Overview. Information Visualization. Definitions

TIBCO Spotfire Business Author Essentials Quick Reference Guide. Table of contents:

WEB DEVELOPMENT COURSE (PHP/ MYSQL)

Course Information Course Number: IWT 1229 Course Name: Web Development and Design Foundation

EXERCISE: Introduction to the D3 JavaScript Library for Interactive Graphics and Maps

Actuate Business Intelligence and Reporting Tools (BIRT)

Data Visualization Frameworks: D3.js vs. Flot vs. Highcharts by Igor Zalutsky, JavaScript Developer at Altoros

Data Visualization Handbook

Visualization methods for patent data

Analyzing Data Using Excel

Visualization of Financial Data

D3.JS: Data-Driven Documents

Developer Tutorial Version 1. 0 February 2015

10CS73:Web Programming

NakeDB: Database Schema Visualization

CLASSROOM WEB DESIGNING COURSE

Programming in HTML5 with JavaScript and CSS3

Interactive Visualization

Visualizing an OrientDB Graph Database with KeyLines

Raising the Bar (Chart)

Assignment 5: Visualization

Tableau Your Data! Wiley. with Tableau Software. the InterWorks Bl Team. Fast and Easy Visual Analysis. Daniel G. Murray and

MicroStrategy Analytics Express User Guide

ReceivablesVision SM Getting Started Guide

Introduction to web development and JavaScript

jquery Tutorial for Beginners: Nothing But the Goods

Building Capacity to Use Infographic Tools

JavaScript (HTML5, CSS3) Toolkits for InfoVis (Graphics)

Visualization. For Novices. ( Ted Hall ) University of Michigan 3D Lab Digital Media Commons, Library

OpenText Information Hub (ihub) 3.1 and 3.1.1

Web Development I & II*

4/25/2016 C. M. Boyd, Practical Data Visualization with JavaScript Talk Handout

An Introduction to KeyLines and Network Visualization

Up and Running with LabVIEW Web Services

Information Literacy Program

6 th Annual EclipseCon Introduction to BIRT Report Development. John Ward

CIS 467/602-01: Data Visualization

Portal Connector Fields and Widgets Technical Documentation

IE Class Web Design Curriculum

How to Deploy Custom Visualizations Using D3 on MSTR 10. Version 1.0. Presented by: Felipe Vilela

Creating and Configuring a Custom Visualization Component

Study of GML-Based Geographical Data Visualization Strategy

Create interactive web graphics out of your SAS or R datasets

JavaScript and jquery for Data Analysis and Visualization

Data Visualization. Scientific Principles, Design Choices and Implementation in LabKey. Cory Nathe Software Engineer, LabKey

Data Visualization in Ext Js 3.4

^/ CS> KRIS. JAMSA, PhD, MBA. y» A- JONES & BARTLETT LEARNING

WEB DESIGN COURSE CONTENT

Adding 3rd-Party Visualizations to OBIEE Kevin McGinley

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010

STATGRAPHICS Online. Statistical Analysis and Data Visualization System. Revised 6/21/2012. Copyright 2012 by StatPoint Technologies, Inc.

Next Generation Lab. A solution for remote characterization of analog integrated circuits

MetroBoston DataCommon Training

MEAP Edition Manning Early Access Program D3.js in Action Version 5

WEB DEVELOPMENT IA & IB (893 & 894)

MASTERTAG DEVELOPER GUIDE

ReportPortal Web Reporting for Microsoft SQL Server Analysis Services

Facebook Twitter YouTube Google Plus Website . o Zooming and Panning. Panel. 3D commands. o Working with Canvas

DKAN. Data Warehousing, Visualization, and Mapping

MicroStrategy Desktop

Participant Guide RP301: Ad Hoc Business Intelligence Reporting

Dashcode User Guide. (Retired Document)

Treemap Visualisations

Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00

Flexible Web Visualization for Alert-Based Network Security Analytics

Enterprise Data Visualization and BI Dashboard

38 Essential Website Redesign Terms You Need to Know

What's new in gvsig Desktop 2.0

Today's Topics. COMP 388/441: Human-Computer Interaction. simple 2D plotting. 1D techniques. Ancient plotting techniques. Data Visualization:

Short notes on webpage programming languages

VoVis: A Vocabulary-based Web Visualization Framework. Swati Sharma

NV301 Umoja Advanced BI Navigation. Umoja Advanced BI Navigation Version 5 1

Dashboard Skin Tutorial. For ETS2 HTML5 Mobile Dashboard v3.0.2

Market Pricing Override

maximizing IT productivity

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

JOB READY ASSESSMENT BLUEPRINT WEB DESIGN - PILOT. Test Code: 3750 Version: 01

Ingo Hilgefort Advanced Data Visualization with SAP BusinessObjects Design Studio Session # 2686

Advantage of Jquery: T his file is downloaded from

R Graphics Cookbook. Chang O'REILLY. Winston. Tokyo. Beijing Cambridge. Farnham Koln Sebastopol

CREATING EXCEL PIVOT TABLES AND PIVOT CHARTS FOR LIBRARY QUESTIONNAIRE RESULTS

Computer Science Course Descriptions Page 1

GLEN RIDGE PUBLIC SCHOOLS MATHEMATICS MISSION STATEMENT AND GOALS

Industry Collaboration: Remote Monitoring of a Cloud-Based System Using Open Source Tools. Abstract

JavaFX Session Agenda

Software Requirements Specification For Real Estate Web Site

GUI and Web Programming

Transcription:

Datalab Seminar Introduction to D3.js Interactive Data Visualization in the Web Browser Dr. Philipp Ackermann Sample Code: http://github.engineering.zhaw.ch/visualcomputinglab/cgdemos 2016 InIT/ZHAW Visual Computing Lab Data Visualization Converting raw data to a form that is viewable and understandable to humans Transform the symbolic to the geometric Make the obvious and the hidden/abstract observable Interactive exploration Drill-down Dynamic mapping Gaining insight by interactive exploration and dynamic simulation Amplify cognition (by creating a mental image) Visual thinking (high bandwidth, pattern recognition,...) 2

Data Visualization A picture is worth more than a thousand words (An ancient Chinese proverb) Tell me and I will forget Show me and I may remember Involve me and I will understand. (Another ancient Chinese proverb) à Interactive information visualization is a great tool for fostering involvement and understanding 3 Data Visualization Information Visualization Abstract representation Discrete data Scientific Visualization Artefacts with well-defined 2D/3D representation in reality Continuous data (e.g., computational fluid dynamics, weather models) 4

InfoVis and Big Data / Open Data More and more data produced More and more open data opendata.ch http://opendata.ch Importance of visualizing this data Narrative information visualization Data-driven journalism The New York Times http://blog.visual.ly/10-things-you-can-learn-from-the-new-york-times-data-visualizations/ The Guardian http://www.theguardian.com/news/datablog Neue Zürcher Zeitung http://nzz.ch/data 5 D3.js A JavaScript library for creating data visualization Transformation of data into interactive visualizations A kind of clever "jquery for SVG Developed by Mike Bostock (while @ Standford, now @ New York Times) Based on standard Web technology HTML Hypertext Markup Language CSS Cascading Style Sheets JS JavaScript SVG Scalable Vector Graphics DOM The Document Object Model 6

D3.js Features Solves the fundamental problem of data visualisation Creates SVG (or HTML) DOM elements Manipulates the DOM with data Supports differential data update Fast, simple and efficient Support for animations and transitions A lot of existing chart/graph layouts Modularity Extensions with functions and plugins Active community support 7 Data in d3.js Data are arrays Array of numbers Array of objects Array of arrays (matrix) Use JavaScript s built-in array methods array.{filter,map,sort, } JSON Embed JSON data Loading JSON data Loading Comma-Separated Values (CSV) Loading XML data using XMLHttpRequest 8

Selection & Manipulation Selectors to simplify DOM access Similar to jquery (but not the same) d3.selectall( div ) Compared to jquery: $( div ) Result is an array d3.selectall("circle"); Method chaining Shorter (and more readable) code d3.selectall("circle").attr("cx", 20).attr("cy", 15).attr("r", 5).style("fill", "red"); 9 Data Binding Select elements and join with data Pairs a data object and a visual element var mydata = [ {x: 2.0, y: 9.4}, {x: 3.0, y: 8.1}, {x: 5.0, y: 8.4}, {x: 8.0, y: 8.7}, {x: 9.0, y: 9.2} ]; svg.selectall("circle").data(mydata).enter().append("circle").attr("cx", x).attr("cy", y).attr("r", 5).style("fill", "red"); Generation of visual elements.enter().append() Set properties using functions of data Attributes (and styles) control position and appearance 10

Data Binding Join cycle: enter, update & exit Keeps track of new and old objects Lets you animate differences between new & old data Keeps existing layout stable enter() Generate new visual element update() Update values of existing elements exit() Remove visual element Can be done with transition enter update exit Data Visuals 11 Scales Scales are functions that map from an input domain to an output range Input is data-driven Output range controls visual properties Scale types Ordinal scale Linear scale Log scale Power scale Time range Color categories var x = d3.scale.ordinal().domain(["a", "B", "C", "D"]).rangePoints([0, 720]); x("b"); // 240 12

Scales Linear scale samples var s = d3.scale.linear().domain([0, 1]).range([-10, 10]) s(0) // -10 s(0.5) // 0 var cs = d3.scale.linear().domain([0, 1]).range(['white', 'red']) cs(0) // '#ffffff' cs(1) // '#ff0000 var data = [31, 22, 50, 36, 80, 42]; var x = d3.scale.linear().domain([20, d3.max(data)]).range([0, 120]); 13 Axes Labeling of scales Create an axis for a given scale var xaxis = d3.svg.axis().scale(x).orient( right"); Add the axis by creating a <g> group element svg.append("g").attr("class", x axis").call(xaxis); Customize axis appearance via CSS and by Ticks.axis path,.axis line { fill: none; stroke: #000; shape-rendering: crispedges; } var axis = d3.svg.axis().ticksize(10,0); 14

Let s Make a Bar Chart By generating HTML div elements../demos/d3js/ A01_Bar_htmlDIVs.html By generating SVG rect elements and axes../demos/d3js/ A02_Bar_chart.html 15 Layouts Layouts do transform data to visual elements They do not draw, they make the data uplift by generating, positioning, and sizing visual elements Predefined layouts Bundle Chord Cluster Force Hierarchy Histogram Pack Partition Pie Stack Tree Treemap World cloud... See https://github.com/mbostock/d3/wiki/gallery 16

Let s Make a Pie Chart By using a d3.js pie layout d3.csv Load and parse data d3.scale.ordinal Color encoding d3.svg.arc Generate arc elements d3.layout.pie Compute arc angles from data../demos/d3js/ A03_Pie_chart.html 17 Transitions and Interactions Make your charts change smoothly Data changes become animated Smooth movements Fade-in / fade-out Add event handlers to generated SVG elements On over à Tooltips On click à Follow URL link On dblclick à Drill-down On drag à Move / rearrange... 18

Let s Visualize a Network Graph Using directional force layout Dynamic network layout Nodes as circles Links as curved arrows Event handlers Click Dblclick Drag Transition Node resizing../demos/d3js/ A04_Network_graph.html 19 Geographical Maps GeoJSON Maps geographic data to SVG polygon elements TopoJSON Borders are stitched together from segments called arcs Arcs are shared by borders à compact data Many different geo projections in d3.geo.js available 20

Let s Create a Swiss Map By using d3.topojson.js../demos/d3js/ A05_Swiss_map.html 21 Example: Visualize content from DB Cron job: PHP script to daily save value in DB PHP script to provide DB records as JSON HTML/D3.js code for data graphics 22

Example: Visualize content from DB PHP script to provide DB records as JSON <?php include_once('dbconfi.php'); $db = mysqli_connect($dbserver, $dbuser, $dbpw, $dbname); $query = "SELECT * FROM imgstats WHERE 1"; $sqlresult = mysqli_query($db, $query); $result =array(); $cnt= mysqli_num_rows($sqlresult); while ($row = $sqlresult->fetch_assoc()) { } $result[] = $row; header('content-type: application/json; charset=utf-8'); echo json_encode($result); mysqli_close($db); 23 Example: Visualize content from DB HTML/D3.js code to get data via JSON <h1>amount of files on Metason server</h2> <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"><script> <script>... var parsedate = d3.time.format("%y-%m-%d").parse; var x = d3.time.scale().range([0, width]); var y = d3.scale.linear().range([height, 0]);... d3.json("getstats.php", function (error, data) { data.foreach(function (d) { d.day = parsedate(d.day); d.portraitfiles = +d.portraitfiles; }); x.domain(d3.extent(data, function (d) { return d.day; })); y.domain([0, d3.max(data, function (d) { return d.portraitfiles; })]);... </script> 24

Student Project: ehealth Info Vis Interactive Web Graphics Access to Open Data of public health information Web-based information visualization based on D3.js http://www.visualcomputinglab.ch/healthvis Information Visualization Example Combine multiple & linked views Temporal filtering & animation Interactive legends http://www.metason.net/artistnet/india_arie.html 26

A Typical d3.js Application Data Flow Import of raw data Optional: Data pre processing Data filtering By user interaction By animation (timer) Visual mapping Preperation for visualization Chart-specific data arrays Calculate scales and axes Several parallel charts Main chart Side charts main chart interactive selection raw data filtering filtered data prep animated selection chart data 1 chart data 2 chart chart data data 2 2 side charts 27 Information Visualization Samples Try out great samples of Info Vis based on d3.js www.bloomberg.com/dataview/2014-04-17/how-americans-die.html www.cs.umd.edu/~bederson/papers/index.html www.nytimes.com/interactive/2013/04/08/business/global/asia-map.html github.com/mbostock/d3/wiki/gallery 28

Dive Deeper Learning by doing Checkout d3.js Web site www.d3js.org Use existing tutorials https://github.com/mbostock/d3/wiki/tutorials Take small steps Learn from examples Study d3.js visualization samples https://github.com/mbostock/d3/wiki/gallery http://bl.ocks.org/mbostock... 29 Types of Data Visualization ß Continuum à Data Graphics Information Visualization Narrative Visualization Statistics + Information Architecture + Storytelling Static Presentation + Interaction + Animation 30

Visual Data Mining Visual Data Mining Use of visual tools for data exploration Interactive exploration Interplay of human and machine intelligence Interaction Loop Machine processing Visual pattern recognition Best of both worlds Machine speed Human perception & interpretation 31 Recommended Reading PDF: http://portal.acm.org/ft_gateway.cfm?id=1805128&type=pdf HTML: http://queue.acm.org/detail.cfm?id=1805128 32

Recommended Reading 33