Building a Basic Visual Analytics System Vitaveska Lanfranchi Suvodeep Mazumdar Tomi Kauppinen Anna Lisa Gentile Update material will be available at

Slides:



Advertisements
Similar presentations
Lecture # 11 JavaScript Graphics. Scalable Vector Graphics (SVG) Scalable Vector Graphics (SVG), as the name implies, are - scalable (without pixelation):
Advertisements

Introduction to HTML5 Programming donghao. HTML5 is the New HTML Standard New Elements, Attributes. Full CSS3 Support Video and Audio 2D/3D Graphics Local.
A web application for browsing research papers By: Rhea Dookeran 09’
Objective Understand web-based digital media production methods, software, and hardware. Course Weight : 10%
Introduction to SVG & Batik Presented by Shang-Ming Huang.
Does Ajax suck? CS575 Spring 2007 Chanwit Suebsureekul.
XP New Perspectives on Microsoft Access 2002 Tutorial 71 Microsoft Access 2002 Tutorial 7 – Integrating Access With the Web and With Other Programs.
JQuery. What is jQuery? jQuery is a fast, small, and feature-rich JavaScript library that simplifies HTML document traversing and manipulation event handling.
Fundamentals, DOM, Events, AJAX, UI Doncho Minkov Telerik Corporation
Agenda What is AJAX? What is jQuery? Demonstration/Tutorial Resources Q&A.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Director of Computer Center, DaYeh University Ku-Yaw Chang.
Ruth Betcher Ruth Christie
GIS technologies and Web Mapping Services
Building a UI with Zen Pat McGibbon –Sales Engineer.
Getting Started with Canvas IDIA Spring 2013 Bridget M. Blodgett.
Session: 17. © Aptech Ltd. 2Canvas and JavaScript / Session 17  Describe Canvas in HTML5  Explain the procedure to draw lines  Explain the procedure.
Silverlight Technology. Table of Contents 1.What is Silverlight Technology? 2.Silverlight Overview. 2.1 How it works 2.2 Silverlight development tools.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
Element. The element Used to dynamically draw graphics using javascript. Capable of drawing paths, circles, rectangles, text, and images.
JavaScript Frameworks Presented by Kyle Goins Also see:
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Mobile web Sebastian Lopienski IT Technical Forum 29 June 2012.
Moving Beyond Standard BMV Reports Using Data Repository Session 373 Presented by: Ian Proffer.
Creating User Interfaces Recap HTML/HTML5 JavaScript features Homework: keep working on user observation studies. Review JavaScript.
Visual Analytics with Linked Open Data and Social Media for e- Governance Vitaveska Lanfranchi Suvodeep Mazumdar Tomi Kauppinen Anna Lisa Gentile Updated.
C#.NETASP.NETJavaPHPJavaScript PerlPythonOthersLiverpool FCMotorsports.
Types of Spatial Data Sites Data portals: Find and download data –Humboldt County, National Atlas “Atlases”: General information –GoogleMaps, MapQuest.
Unleash the Power of jQuery Learning & Development Team Telerik Software Academy.
LAB 03: VISUALIZATION WITH D3 September 30, 2015 SDS 235 Visual Analytics.
Tight Coupling of Dynamic Query Filters with Starfield Displays / Spotfire.net Desktop By Chris Ahlberg and Ben Shneiderman / Spotfire Inc. IC280 5/9/02.
Contents : What is Silverlight? Silverlight Overview Silverlight Toolkit Overview Timeline & Packaging Silverlight V1.0 & V1.1 Properties of V1.0 Properties.
INT222 - Internet Fundamentals Shi, Yue (Sunny) Office: T2095 SENECA COLLEGE.
D3 Practicum CS 4460 – Information Visualization Megha Sandesh Prepared under advisement by Dr.Fames Foley.
1 What is JQuery. jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax* interactions.
 Web pages originally static  Page is delivered exactly as stored on server  Same information displayed for all users, from all contexts  Dynamic.
Event Handling & AJAX IT210 Web Systems. Question How do we enable users to dynamically interact with a website? Answer: Use mouse and keyboard to trigger.
® IBM Software Group © 2007 IBM Corporation Module 3: Creating UML Diagrams Essentials of Modeling with IBM Rational Software Architect, V7.5.
Understanding Web-Based Digital Media Production Methods, Software, and Hardware Objective
Please thank our sponsors?. SharePoint Data Visualization Using D3, SVG, jQuery and REST.
Overview Web Technologies Computing Science Thompson Rivers University.
CSCI 3100 Tutorial 2 Web Development Tools 1 HTML 5 & CSS 3 1.
CSCI 3100 Tutorial 5 JavaScript & Ajax Jichuan Zeng Department of Computer Science and Engineering The Chinese University of Hong.
HTML5 ProgLan HTML5 Making a Game on the Canvas Part 1.
Applications Active Web Documents Active Web Documents.
JQuery Fundamentals Introduction Tutorial Videos
That Gauge is COOL! 
Web Technologies Computing Science Thompson Rivers University
Application with Cross-Platform GUI
Fundamentals, DOM, Events, AJAX, UI
°.
Prepared for Md. Zakir Hossain Lecturer, CSE, DUET Prepared by Miton Chandra Datta
Introduction to D3.js and Bar Chart in D3.js
Silverlight Technology
jQuery The Easy JavaScript Nikolay Chochev Technical Trainer
JQuery with ASP.NET.
Objective Understand web-based digital media production methods, software, and hardware. Course Weight : 10%
D3.js Tutorial (Hands on Session)
Types of Spatial Data Sites
D3.js Tutorial (Hands on Session)
Types of Spatial Data Sites
Tutorial 7 – Integrating Access With the Web and With Other Programs
CSc 337 Lecture 20: Canvas.
Types of Spatial Data Sites
Creating User Interfaces
Web Technologies Computing Science Thompson Rivers University
Introduction to JavaScript & jQuery
Lab 2: Information Retrieval
Web Application Development Using PHP
Presentation transcript:

Building a Basic Visual Analytics System Vitaveska Lanfranchi Suvodeep Mazumdar Tomi Kauppinen Anna Lisa Gentile Update material will be available at

Agenda Gather Social Media Extract relevant information Store for later processing HTML/JS Querying data stores Visualising result sets

Paradigm for visual data exploration Overview first, zoom and filter, then details-on- demand 1 Analysis first – show the important – zoom and filter, and analyze further – details on demand 2 Social Media, Crisis Management Identify topics, monitor, explore, details-on-demand 1- B. Shneiderman. The Eyes Have It: A Task by Data Type Taxonomy for Information Visualizations. In the Proceedings of the IEEE Symposium on Visual Languages, pp , D. Keim. Scaling Visual Analytics to Very Large Data Sets. Presentation at Workshop on Visual Analytics, 2005.

Approach 1: Data Collection Capture Social Media data Process data to index, structure and categorise into meaningful features What is important for Visual Analytics ? – Unsure, as any information can be potentially useful – But, some features are more useful Store what is important

User Tweets Social Media – Users and Content

Anatomy of a Profile

Anatomy of a Tweet

Approach 2: Data Consumption Query Exploit Categories, indices, structure of data Provide meaningful representation of data – Visual – Interactive – Intuitive

Standalone vs Web Standalone ApplicationWeb – Based Application PlatformPlatform/System SpecificGeneric, based on web-standards MaintenanceInstallations/updates in every computer Installations/updates in one location Ease of useAccess from individual computers Access from any location Access ControlCentralised ScalabilityAbility to handle large datasets Significantly improving InteractionsEasy to handle but platform, language specific Web standards ensure similar techniques are employed

Browser Graphics – HTML 5 Canvas Canvas – Draw Objects using scripts – Static or Dynamic – Manipulate Pixels to create objects – No DOM operations – Interactions handled from canvas by reading mouse events e.g: Processingjs, Chartjs

Processingjs Port of the popular Processing graphics library

Browser Graphics – Scalable Vector Graphics SVG – XML based (source file or script generated) – Static or Dynamic – Manipulation using DOM (Document Object Model, represent and interact with objects) – Easily add/remove SVG objects – Interactions handled by DOM events e.g. Highcharts, d3js, JIT, gRaphaël, Google charts

SVG Example

Canvas Example window.addEventListener('load', function () { // Get the canvas element. var canvas = document.getElementById('myCanvas'), w = 4, h = 4, zoompx = 6, step = 'zoomin'; if (!canvas || !canvas.getContext) { return; } // Get the canvas 2d context. var ctx = canvas.getContext('2d'); if (!ctx) { return; } var K = 4*((Math.SQRT2-1)/3); setInterval(function () { if (step == 'zoomin') { w += zoompx; h += zoompx; } else if (step == 'zoomout') { w -= zoompx; h -= zoompx; } if (w > canvas.width) { w = canvas.width; step = 'zoomout'; } else if (w < 4) { w = 4; step = 'zoomin'; } if (h > canvas.height) { h = canvas.height; step = 'zoomout'; } else if (h < 4) { h = 4; step = 'zoomin'; } // Create the radial gradient: x0, y0, r0, x1, y1, r1. // That's the start circle (x0,y0) coordinates and r0 radius, // followed by the end circle (x1,y1) coordinates and r1 radius. var gradient = ctx.createRadialGradient( Math.round(w/2), Math.round(h/2), 0, Math.round(w/2), Math.round(h/2), Math.round(Math.min(w, h)/2)); gradient.addColorStop(0, "#ff0"); gradient.addColorStop(1, "#0f0"); // Use the gradient for the fillStyle. ctx.fillStyle = gradient; // Ellipse radius and center. var cx = w/2, cy = h/2, // Ellipse radius*Kappa, for the Bézier curve control points rx = cx*K, ry = cy*K; ctx.setTransform(1, 0, 0, 1, 0, 0); ctx.clearRect(0, 0, canvas.width, canvas.height); ctx.setTransform(1, 0, 0, 1, Math.round((canvas.width - w) / 2), Math.round((canvas.height - h) / 2)); ctx.beginPath(); // startX, startY ctx.moveTo(cx, 0); // Control points: cp1x, cp1y, cp2x, cp2y, destx, desty // go clockwise: top-middle, right-middle, bottom-middle, then left-middle ctx.bezierCurveTo(cx + rx, 0, w, cy - ry, w, cy); ctx.bezierCurveTo(w, cy + ry, cx + rx, h, cx, h); ctx.bezierCurveTo(cx - rx, h, 0, cy + ry, 0, cy); ctx.bezierCurveTo(0, cy - ry, cx - rx, 0, cx, 0); ctx.fill(); ctx.stroke(); ctx.closePath(); }, 20); }, false);

SVG Graphics

HOW TO BUILD A BASIC INTERACTIVE VA SYSTEM

Typical Architecture Server Client Social Media Web Services Open Data Structured Data User

Tools/Libraries/Languages HTML- web based framework for easy deployment and access Javascript – client-side scripting to enable data and object manipulation Jquery- javascript library providing event- handling, object manipulation, animation etc. Charting Libraries Highcharts ( D3js ( Jit(

Data 3k Twitter posts, crawled over two days (keywords “emergency”,”crisis”,”disaster”,”flood”) – User names – Hashtags – Location – Source – Mentions – Content Data stored in a local database (SOLR) – Easy to distribute with easy installation and access – Can be queried directly from js – Indexing technique favouring faceting, querying and pivoting

Techniques and Views Visualisations – Pie Chart – TimeLine – Geo Map – ScatterPlot – Network Interactions – Details-on-demand – Filter – Faceting – Pivoting

Faceted Search Guided navigation Incrementally reaching items of interest Reduces need for complex querying

Pivot Multi-dimensional faceting Helps exploit multiple categorisations effectively Support large range of visual paradigms

Step 0: Ensure Data is available at Solr Download the SOLR folder Download the tutorial materials

Data Schema

ROOT |----> some_html_page.html |----> js |----> a_control_page.js ----> css |----> a_base_css.css |----> lib |----> Highcharts |----> Jit |----> d3.v3 Step 1: Directory Structure

Step 2: Create an HTML file Example visualisations Content index_basic.html

Step 3: Add Javascript files Example visualisations

Step 4: Add HTML Containers

Step 5: Add CSS Example visualisations

Step 6: Add CSS (base.css).plot_holder{ background-color: silver; border-color: black; border-width: 1px; min-height: 500px; min-width: 500px; width:42%; }

Step 2: Display Tweets (control.js) var solrUrl = window.onload = function(){ listData(); } function listData(){ var htmlstring=" "; $.ajax({ 'url': solrUrl, 'data': {'wt':'json','q':'*:*','rows':10}, 'success': function(data) { var docs = data.response.docs; for (var docindex in docs){ htmlstring += " "+docs[docindex].content+" "; } htmlstring+=" "; document.getElementById(“container1").innerHTML=htmlstring; }, 'dataType': 'jsonp', 'jsonp': 'json.wrf' }); }

Visualisations Visualise using Pie Chart, Add Highcharts library to in index_basic.html Add relevant javascript code – Ideally, lookup demo code – Edit/manipulate for required view

Interactions ? Click Hover Drag Zoom Pan Keystrokes hotkeys

Click click: function(e) { var value = "\""+e.point.category+"\""; showDetails(barField,value); }