Reactive Building Blocks

Size: px
Start display at page:

Download "Reactive Building Blocks"

Transcription

1 Reactive Building Blocks Interactive Visualizations with Vega Arvind Stanford University Jane Hoffswell Dominik Kanit "Ham" Jeffrey University of Washington 1

2 Three Little Circles * Visual Design var circle = svg.selectall('circle').data([32, 57, 293]); circle.enter().append('circle').attr('fill', 'steelblue').attr('cy', 60).attr('cx', function(d, i) { return i * ; }).attr('r', function(d) { return Math.sqrt(d); }); Map data values to visual properties. Declarative design: specify what we want, rather than how it should be computed. Interaction Design var dragging = null; circle.on('mousedown', function() { dragging = d3.select(this).attr('fill', 'goldenrod'); }); d3.select(window).on('mouseup', function() { dragging.attr('fill', 'steelblue'); dragging = null; }).on('', function() { if (!dragging) return; dragging.attr('cy', d3.event.pagey); d3.event.stoppropagation(); }); Imperative design: define explicit steps of how it should be computed. * Mike Bostock,

3 The Trouble with Imperative Interaction var dragging = null; circle.on('mousedown', function() { dragging = d3.select(this).attr('fill', 'goldenrod'); }); d3.select(window).on('mouseup', function() { dragging.attr('fill', 'steelblue'); dragging = null; }).on('', function() { if (!dragging) return; dragging.attr('cy', d3.event.pagey); d3.event.stoppropagation(); }); 1. Manually maintain state. 2. Re-define visual appearance in multiple locations. 3. Low-level idiosyncrasies. 4. Callback Hell: unpredictable and interleaved execution. 7

4 1. Manually maintain state. 2. Re-define visual appearance in multiple locations. 3. Low-level idiosyncrasies. 4. Callback Hell: unpredictable and interleaved execution. 8

5 1. Manually maintain state. 2. Re-define visual appearance in multiple locations. 3. Low-level idiosyncrasies. 4. Callback Hell: unpredictable and interleaved execution. 9

6 Reactive Programming 10

7 Reactive Programming Events are streaming data. Dynamic variables (signals) automatically update. 10

8 Data + Transforms Scales Guides Marks {... "width": 650, "height": 300, "data": [... {"name": "iris", "url": "data/iris.json"}, {"name": "fields", "values": ["sepalwidth",...] ], "scales": [... {... "name": "color", "type": "ordinal", "domain": {"data": "iris", "field": "species"} "range": "category20" },... ], "legends": [... {"fill": "x", "scale": "color"} ], "marks": [{... "type": "group", "from": {... "data": "fields", "transform": [{"type": "cross"}]... }, "marks": [{... "type": "symbol", "from": {"data": "iris"}, "properties": { "enter": {... "x": {"scale": "sx", "field": "date"}, "y": {"scale": "sy", "field": "price"}, "stroke": {"scale": "sc", "field": "symbol"} }} }], "scales": [{... "name": "sx", "type": "linear", "domain": {"data": "iris", "field": {"parent": "a.data"}, 15

9 Data + Transforms Scales Guides Marks Event Streams + Signals Scale Inversions Predicates Production Rules [mousedown, mouseup] > minx = min(width, event.x) minval = xscale.invert(minx) p(t) = minval t.value maxval fill = p(t)! colorscale(t.category)! gray 16

10 Example Brushing & Linking 17

11 Events are a form of streaming data. A stream of events that occur on rect marks. rect: 19

12 *:mousedown, *:mouseup a single stream merges mousedown and mouseup streams [*:mousedown, *:mouseup] > *: A stream of events that occur between a mousedown and a mouseup (aka drag) stream of events that occur between and mousedown mousedown mousedown mouseup mousedown mouseup mousedown mouseup *:click[event.pagey >= 300] [data.price < 500] filtered stream of click events click click click click click *:{3ms,5ms} stream of events that occur at least 3ms, and at most 5ms, apart (debouncing/throttling) price = 300 pagey = 500 price = 750 pagey = 310 price = 425 pagey = 170 price = 115 pagey = 333 price = 500 pagey = 55 mouseup click click 0ms 2ms 4ms 6ms 8ms 10ms 20

13 mousedown [mousedown, mouseup] > 21

14 mousedown Signal [mousedown, mouseup] > Signal 21

15 mousedown Signal Start [mousedown, mouseup] > Signal End 21

16 mousedown Signal Start Rect Mark [mousedown, mouseup] > Signal End 22

17 mousedown Signal Start Rect Mark [mousedown, mouseup] > Signal End 22

18 mousedown Signal Start Predicate [mousedown, mouseup] > Signal End 23

19 mousedown Signal Start Predicate Selection xstart xpt xend && ystart ypt yend [mousedown, mouseup] > Signal End 23

20 mousedown Signal Start Selection xstart xpt xend && ystart ypt yend [mousedown, mouseup] > Signal End 24

21 mousedown Signal Start Circle Mark Fill Rule Selection xstart xpt xend && ystart ypt yend [mousedown, mouseup] > Signal End 24

22 mousedown Signal Start Circle Mark Fill Rule if (Scaled species) blue orange green Selection xstart xpt xend && ystart ypt yend [mousedown, mouseup] > Signal End 24

23 mousedown Signal Start Circle Mark Fill Rule if else gray (Scaled species) blue orange green Selection xstart xpt xend && ystart ypt yend [mousedown, mouseup] > Signal End 24

24

25 mousedown Signal Start Selection xstart xpt xend && ystart ypt yend [mousedown, mouseup] > Signal End 26

26 mousedown Signal Start event.target Scatterplot Selection xstart xpt xend && ystart ypt yend [mousedown, mouseup] > Signal End 26

27 mousedown Signal Start Scale Inversion event.target Scatterplot Selection xstart xpt xend && ystart ypt yend [mousedown, mouseup] > Signal End Scale Inversion 27

28 mousedown Signal Start Scale Inversion event.target Scatterplot Query sepalstart sepalpt sepalend && petalstart petalpt petalend [mousedown, mouseup] > Signal End Scale Inversion 28

29 mousedown Signal Start Scale Inversion Circle Mark Fill Rule if else gray (Scaled species) blue orange green event.target Scatterplot Query sepalstart sepalpt sepalend && petalstart petalpt petalend [mousedown, mouseup] > Signal End Scale Inversion 28

30 mousedown Signal Start Scale Inversion Circle Mark Fill Rule if else gray (Scaled species) blue orange green event.target Scatterplot [mousedown, mouseup] > Signal End Scale Inversion 29

31 mousedown Start Scale Inversion Scatterplot [mousedown, mouseup] > End Scale Inversion Circle Mark Fill Rule if else gray (Scaled species) blue orange green 30

32 mousedown Start Declarative Interaction Design Scale Inversion Scatterplot [mousedown, mouseup] > Scale Inversion End Circle Mark Fill Rule if else gray (Scaled species) blue orange green 30

33 mousedown Start Scale Inversion Declarative Interaction Design Faster iteration + accessible to a larger audience. Scatterplot [mousedown, mouseup] > Scale Inversion End Circle Mark Fill Rule if else gray (Scaled species) blue orange green 30

34 mousedown Start Scale Inversion Declarative Interaction Design Faster iteration + accessible to a larger audience. Scatterplot Performance + scalability. At least 2x faster than D3 + callbacks. [mousedown, mouseup] > Scale Inversion End Circle Mark Fill Rule if else gray (Scaled species) blue orange green 30

35 mousedown Start Scale Inversion Declarative Interaction Design Faster iteration + accessible to a larger audience. Scatterplot Performance + scalability. At least 2x faster than D3 + callbacks. [mousedown, mouseup] > End Scale Inversion Reuse + portability. Write once. Re-apply with different input data. Re-target to multiple devices, renderers, or modalities. Circle Mark Fill Rule if else gray (Scaled species) blue orange green 30

36 Start Scatterplot Scale Inversion Declarative Interaction Design Faster iteration + accessible to a larger audience. Performance + scalability. At least 2x faster than D3 + callbacks. End Scale Inversion Reuse + portability. Write once. Re-apply with different input data. Re-target to multiple devices, renderers, or modalities. Circle Mark Fill Rule if else gray (Scaled species) blue orange green 31

37 touchstart Start Scale Inversion Declarative Interaction Design Faster iteration + accessible to a larger audience. Scatterplot Performance + scalability. At least 2x faster than D3 + callbacks. [touchstart, touchend] > touchmove End Scale Inversion Reuse + portability. Write once. Re-apply with different input data. Re-target to multiple devices, renderers, or modalities. Circle Mark Fill Rule if else gray (Scaled species) blue orange green 32

38 Demo 33

39 vega.github.io/vega/ 34

40 One more thing... 35

41 Interactive Vega-Lite 36

42 Interactive Vega-Lite (A Sneak Peak) 36

43 can be initialized { } "repeat": {"column": ["hour", "delay", "distance"]}, {... "data": {"url": "data/flights.json"}, Data "mark": "bar", Mark "encoding": {... }... }... "x": {"field": "hour", "bin": true, "type": "quantitative",}, "y": {"field": "*", "aggregate": "count", "type": "quantitative"} Transforms + Scales & Guides (not shown) 41

44 can be initialized {... "repeat": {"column": ["hour", "delay", "distance"]}, "spec": { "data": {"url": "data/flights.json"}, "mark": "bar", "encoding": { "x": {"field": {"repeat": "column"}, "bin": true, "type": "quantitative"}, "y": {"field": "*", "aggregate": "count", "type": "quantitative"} }... }... }... 43

45 { } can be initialized "repeat": {"column": ["hour", "delay", "distance"]}, "spec": { "layers": [{ "data": {"url": "data/flights.json"}, "mark": "bar", "encoding": { "x": {"field": {"repeat": "column"}, "bin": true, "type": "quantitative"}, "y": {"field": "*", "aggregate": "count", "type": "quantitative"} } }, {..., "encoding": {..., "color": {"value": "goldenrod"} } }] } 45

46 { can be initialized "repeat": {"column": ["hour", "delay", "distance"]}, "spec": { "layers": [{..., "mark": "bar", "encoding": { "x": {"field": {"repeat": "column"}, "type": "Q", "bin": true}, "y": {"aggregate": "count", "field": "*", "type": "Q"} } }, {..., } } }] 46

47 { can be initialized "repeat": {"column": ["hour", "delay", "distance"]}, "spec": { "layers": [{..., "select": { "region": { "type": "interval", "project": {"channels": ["x"]},... } } }, {..., } } }] 47

48 { } can be initialized "repeat": {"column": ["hour", "delay", "distance"]}, "spec": { "layers": [{..., "select": { "region": { "type": "interval", "project": {"channels": ["x"]},... } } }, {..., "transform": {"filterwith": "region"} }] } 48

49 { } can be initialized "repeat": {"column": ["hour", "delay", "distance"]}, "spec": { "layers": [{..., "select": { "region": { "type": "interval", "project": {"channels": ["x"]},... } } }, {..., "transform": {"filterwith": "region"} }] } 35 Lines of JSON! 48

50 can be initialized 49

51 Vega: A Platform for Visualization Voyager PoleStar Altair Vega-Lite Lyra Wikipedia Vega D3 JavaScript SVG Canvas 50

52 Vega: A Platform for Visualization Voyager PoleStar Altair Vega-Lite Lyra Wikipedia Vega D3 JavaScript SVG Canvas 50

53 Vega: A Platform for Visualization Voyager PoleStar Altair Vega-Lite Lyra Wikipedia Vega D3 JavaScript SVG Canvas 50

54 Vega: A Platform for Visualization Voyager PoleStar Altair Vega-Lite Lyra Wikipedia? Vega D3 JavaScript SVG Canvas 50

55 vega.github.io 51

Visualization Systems & Toolkits

Visualization Systems & Toolkits Visualization Systems & Toolkits 8803DV CS/MGT April 10, 2017 Systems/tools that help people create visualizations or use visualizations to help people explore and analyze data. Toolkits are components/libraries/packages

More information

D3js Tutorial. Tom Torsney-Weir Michael Trosin

D3js Tutorial. Tom Torsney-Weir Michael Trosin D3js Tutorial Tom Torsney-Weir Michael Trosin http://www.washingtonpost.com/wp-srv/special/politics Contents Some important aspects of JavaScript Introduction to SVG CSS D3js Browser-Demo / Development-Tools

More information

Visualization Process

Visualization Process Visualization Process Visualization Torsten Möller Agenda Overview of visualization pipelines Detail on d3 s implementation 2 Visualization Process Visualization pipeline Pipeline Model [J. Heer, Prefuse]

More information

Visualization Process

Visualization Process Visualization Process Visualization Torsten Möller Agenda Overview of visualization pipelines Detail on d3 s implementation 2 Visualization Process Visualization pipeline Visualization Pipeline simulation

More information

TUTORIAL: D3 (1) Basics. Christoph Kralj Manfred Klaffenböck

TUTORIAL: D3 (1) Basics. Christoph Kralj Manfred Klaffenböck TUTORIAL: D3 (1) Basics Christoph Kralj christoph.kralj@univie.ac.at Manfred Klaffenböck manfred.klaffenboeck@univie.ac.at Overview Our goal is to create interactive visualizations viewable in your, or

More information

Resonant Laboratory and Candela: Spreading Your Visualization Ideas to the Masses

Resonant Laboratory and Candela: Spreading Your Visualization Ideas to the Masses Resonant Laboratory and Candela: Spreading Your Visualization Ideas to the Masses Alex Bigelow University of Utah Roni Choudhury Kitware, Inc. Jeffrey Baumes Kitware, Inc. 1 INTRODUCTION Visualization

More information

HCDE 530: Computational Techniques for HCDE Data Visualization in Web, Part 2

HCDE 530: Computational Techniques for HCDE Data Visualization in Web, Part 2 HCDE 530: Computational Techniques for HCDE Data Visualization in Web, Part 2 David McDonald, Sungsoo (Ray) Hong University of Washington Outline Before we start Download HCDE530_D3_part2.zip in the course

More information

D3 Introduction. Gracie Young and Vera Lin. Slides adapted from

D3 Introduction. Gracie Young and Vera Lin. Slides adapted from D3 Introduction Gracie Young and Vera Lin Slides adapted from Maneesh Agrawala Jessica Hullman Ludwig Schubert Peter Washington Alec Glassford and Zach Maurer CS 448B: Visualization Fall 2018 Topics 1)

More information

A DeVIL-ish Approach to Inconsistency in Interactive Visualizations

A DeVIL-ish Approach to Inconsistency in Interactive Visualizations A DeVIL-ish Approach to Inconsistency in Interactive Visualizations Yifan Wu UC Berkeley yifanwu@berkeley.edu Joseph M. Hellerstein UC Berkeley hellerstein@berkeley.edu Eugene Wu Columbia University ewu@cs.columbia.edu

More information

D3 Exercises & Questioning. Presenter: Shiwangi Singh

D3 Exercises & Questioning. Presenter: Shiwangi Singh D3 Exercises & Questioning Presenter: Shiwangi Singh Discussion Topics Questions : Update Pattern Merge and Exit D3 Examples : Smooth Transitioning Voronoi Topology Jigsaw Morphing Update Patterns 0 d3.select(

More information

Web App Vs Web Site. Some tricks of the trade. Laurent Technical Director, BlackBerry Web Platform

Web App Vs Web Site. Some tricks of the trade. Laurent Technical Director, BlackBerry Web Platform Web App Vs Web Site Some tricks of the trade Laurent Hasson @ldhasson, lhasson@rim.com Technical Director, BlackBerry Web Platform 2012-05-09 Web Apps Vs. Web Sites 1 INTRODUCTION 2012-05-09 Web Apps Vs.

More information

Visual Encoding Design

Visual Encoding Design CSE 442 - Data Visualization Visual Encoding Design Jeffrey Heer University of Washington Last Time: Data & Image Models The Big Picture task questions, goals assumptions data physical data type conceptual

More information

Language Reference Manual

Language Reference Manual COMS 4115: Programming Languages and Translators SBML: Shen Bi Ma Liang Chinese Character: 神筆馬良 English Translation: Magic Pen Boy Language Reference Manual Bin Liu (bl2329@columbia.edu) Yiding Cheng (yc2434@columbia.edu)

More information

CSE512 :: 28 Jan Visualization Tools. Jeffrey Heer University of Washington

CSE512 :: 28 Jan Visualization Tools. Jeffrey Heer University of Washington CSE512 :: 28 Jan 2014 Visualization Tools Jeffrey Heer University of Washington 1 How do people create visualizations? Chart Typology Pick from a stock of templates Easy-to-use but limited expressiveness

More information

Radical GUI Makeover with Ajax Mashup

Radical GUI Makeover with Ajax Mashup Radical GUI Makeover with Ajax Mashup Terrence Barr Senior Technologist and Community Ambassador Java Mobile & Embedded Community TS-5733 Learn how to turn a 'plain old' Java Platform, Micro Edition (Java

More information

Scalable Vector Graphics commonly known as SVG is a XML based format to draw vector images. It is used to draw twodimentional vector images.

Scalable Vector Graphics commonly known as SVG is a XML based format to draw vector images. It is used to draw twodimentional vector images. About the Tutorial Scalable Vector Graphics commonly known as SVG is a XML based format to draw vector images. It is used to draw twodimentional vector images. This tutorial will teach you basics of SVG.

More information

Supplementary Materials of canvasdesigner

Supplementary Materials of canvasdesigner Supplementary Materials of canvasdesigner Contents Web URLs to tools and online user guide... 2 SVG (Scalable Vector Graphics) files generated by canvasxpress... 3 Layout multiple SVG files by canvasdesigner...

More information

InfoVis Systems & Toolkits

InfoVis Systems & Toolkits InfoVis Systems & Toolkits CS 7450 - Information Visualization September 21, 2016 John Stasko Learning Objectives Gain familiarity with history of visualization toolkits Describe what each's new contribution

More information

1. Complete these exercises to practice creating user functions in small sketches.

1. Complete these exercises to practice creating user functions in small sketches. Lab 6 Due: Fri, Nov 4, 9 AM Consult the Standard Lab Instructions on LEARN for explanations of Lab Days ( D1, D2, D3 ), the Processing Language and IDE, and Saving and Submitting. Rules: Do not use the

More information

Hell is other browsers - Sartre. The touch events. Peter-Paul Koch (ppk) DIBI, 28 April 2010

Hell is other browsers - Sartre. The touch events. Peter-Paul Koch (ppk)   DIBI, 28 April 2010 Hell is other browsers - Sartre The touch events Peter-Paul Koch (ppk) http://quirksmode.org http://twitter.com/ppk DIBI, 28 April 2010 The desktop web Boring! - Only five browsers with only one viewport

More information

16. HTML5, HTML Graphics, & HTML Media 웹프로그래밍 2016 년 1 학기 충남대학교컴퓨터공학과

16. HTML5, HTML Graphics, & HTML Media 웹프로그래밍 2016 년 1 학기 충남대학교컴퓨터공학과 16. HTML5, HTML Graphics, & HTML Media 웹프로그래밍 2016 년 1 학기 충남대학교컴퓨터공학과 목차 HTML5 Introduction HTML5 Browser Support HTML5 Semantic Elements HTML5 Canvas HTML5 SVG HTML5 Multimedia 2 HTML5 Introduction What

More information

THE JAVASCRIPT ARTIST 15/10/2016

THE JAVASCRIPT ARTIST 15/10/2016 THE JAVASCRIPT ARTIST 15/10/2016 Objectives Learn how to program with JavaScript in a fun way! Understand the basic blocks of what makes a program. Make you confident to explore more complex features of

More information

Lecture Topic Projects

Lecture Topic Projects Lecture Topic Projects 1 Intro, schedule, and logistics 2 Applications of visual analytics, basic tasks, data types 3 Introduction to D3, basic vis techniques for non-spatial data Project #1 out 4 Visual

More information

CISC 1600 Lecture 3.1 Introduction to Processing

CISC 1600 Lecture 3.1 Introduction to Processing CISC 1600 Lecture 3.1 Introduction to Processing Topics: Example sketches Drawing functions in Processing Colors in Processing General Processing syntax Processing is for sketching Designed to allow artists

More information

Coding Annoyances. FOMC dotplot with D3 and Python

Coding Annoyances.   FOMC dotplot with D3 and Python http://rubenhm.org/blog/ Research, Writings + Code Coding Annoyances FOMC dotplot with D3 and Python 03 January 2017 Rubén Hernández-Murillo The FOMC's dotplot is part of the Summary of Economic Projections

More information

Kyrix: Interactive Visual Data Exploration at Scale

Kyrix: Interactive Visual Data Exploration at Scale Kyrix: Interactive Visual Data Exploration at Scale Wenbo Tao MIT CSAIL wenbo@mit.edu Remco Chang Tufts University remco@cs.tufts.edu Xiaoyu Liu Purdue University liu1962@purdue.edu Çağatay Demiralp MIT

More information

Multi-Dimensional Vis

Multi-Dimensional Vis CSE512 :: 21 Jan 2014 Multi-Dimensional Vis Jeffrey Heer University of Washington 1 Last Time: Exploratory Data Analysis 2 Exposure, the effective laying open of the data to display the unanticipated,

More information

Kyrix: Interactive Visual Data Exploration at Scale

Kyrix: Interactive Visual Data Exploration at Scale Kyrix: Interactive Visual Data Exploration at Scale Wenbo Tao MIT CSAIL wenbo@mit.edu Remco Chang Tufts University remco@cs.tufts.edu Xiaoyu Liu Purdue University liu1962@purdue.edu Çağatay Demiralp MIT

More information

Improving the Accessibility and Usability of Complex Web Applications

Improving the Accessibility and Usability of Complex Web Applications Media #WWDC14 Improving the Accessibility and Usability of Complex Web Applications Session 516 Jesse Bunch Productivity Engineering 2014 Apple Inc. All rights reserved. Redistribution or public display

More information

CSE Data Visualization. Design Critiques. Jeffrey Heer University of Washington

CSE Data Visualization. Design Critiques. Jeffrey Heer University of Washington CSE 512 - Data Visualization Design Critiques Jeffrey Heer University of Washington Final Project Final Project Design a new visualization system or technique. Many options New system for a chosen domain

More information

Data Visualization (CIS/DSC 468)

Data Visualization (CIS/DSC 468) Data Visualization (CIS/DSC 468) Data Dr. David Koop SVG Example http://codepen.io/dakoop/pen/ yexvxb

More information

Protovis cheat sheet. Property Description Area Bar Dot Line Wedge Label Rule. Style Description Area Bar Dot Line Wedge Label Rule.

Protovis cheat sheet. Property Description Area Bar Dot Line Wedge Label Rule. Style Description Area Bar Dot Line Wedge Label Rule. Protovis cheat sheet AREA BAR DOT LINE WEDGE right height width height outerradius innerradius Property Area Bar Dot Line Wedge Label Rule data the array of data used to position elements in a chart distance

More information

CISC 1600, Lab 2.1: Processing

CISC 1600, Lab 2.1: Processing CISC 1600, Lab 2.1: Processing Prof Michael Mandel 1 Getting set up For this lab, we will be using Sketchpad, a site for building processing sketches online using processing.js. 1.1. Go to http://cisc1600.sketchpad.cc

More information

INFORMATION VISUALIZATION

INFORMATION VISUALIZATION CSE 557A Sep 26, 2016 INFORMATION VISUALIZATION Alvitta Ottley Washington University in St. Louis Slide Credits: Mariah Meyer, University of Utah Remco Chang, Tufts University HEIDELBERG LAUREATE FORUM

More information

Creating Content with iad JS

Creating Content with iad JS Creating Content with iad JS Part 2 The iad JS Framework Antoine Quint iad JS Software Engineer ios Apps and Frameworks 2 Agenda Motivations and Features of iad JS Core JavaScript Enhancements Working

More information

12. A(n) is the number of times an item or number occurs in a data set.

12. A(n) is the number of times an item or number occurs in a data set. Chapter 15 Vocabulary Practice Match each definition to its corresponding term. a. data b. statistical question c. population d. sample e. data analysis f. parameter g. statistic h. survey i. experiment

More information

Data Visualization (DSC 530/CIS )

Data Visualization (DSC 530/CIS ) Data Visualization (DSC 530/CIS 602-01) HTML, CSS, & SVG Dr. David Koop Data Visualization What is it? How does it differ from computer graphics? What types of data can we visualize? What tasks can we

More information

COMS 4115: Programming Languages and Translators. SBML: Shen Bi Ma Liang. Chinese Character: Project Proposal

COMS 4115: Programming Languages and Translators. SBML: Shen Bi Ma Liang. Chinese Character: Project Proposal COMS 4115: Programming Languages and Translators SBML: Shen Bi Ma Liang Chinese Character: English Translation: Magic Pen Boy Project Proposal Bin Liu (bl2329@columbia.edu) Yiding Cheng (yc2434@columbia.edu)

More information

Package d3r. January 29, 2019

Package d3r. January 29, 2019 Type Package Title 'd3.js' Utilities for R Version 0.8.5 Date 2019-01-28 Package d3r January 29, 2019 Maintainer Kent Russell URL https://github.com/timelyportfolio/d3r

More information

CISC 1600, Lab 2.2: Interactivity in Processing

CISC 1600, Lab 2.2: Interactivity in Processing CISC 1600, Lab 2.2: Interactivity in Processing Prof Michael Mandel 1 Getting set up For this lab, we will again be using Sketchpad, a site for building processing sketches online using processing.js.

More information

Class CSE F. *slides are from CSE S at SKKU & at MIT

Class CSE F. *slides are from CSE S at SKKU & at MIT Class CSE2013-17F *slides are from CSE2013-16S at SKKU & 6.096 at MIT Representing a Vector In the context of geometry, a vector consists of 2 points: a start and a finish Each point itself has an x and

More information

5/19/2015. Objectives. JavaScript, Sixth Edition. Using Touch Events and Pointer Events. Creating a Drag-and Drop Application with Mouse Events

5/19/2015. Objectives. JavaScript, Sixth Edition. Using Touch Events and Pointer Events. Creating a Drag-and Drop Application with Mouse Events Objectives JavaScript, Sixth Edition Chapter 10 Programming for Touchscreens and Mobile Devices When you complete this chapter, you will be able to: Integrate mouse, touch, and pointer events into a web

More information

Formalizing Visualization Design Knowledge as Constraints: Actionable and Extensible Models in Draco

Formalizing Visualization Design Knowledge as Constraints: Actionable and Extensible Models in Draco Formalizing Visualization Design Knowledge as Constraints: Actionable and Extensible Models in Draco Dominik Moritz, Chenglong Wang, Greg L. Nelson, Halden Lin, Adam M. Smith, Bill Howe, Jeffrey Heer Abstract

More information

Hell is other browsers - Sartre. The touch events. Peter-Paul Koch (ppk) WebExpo, 24 September 2010

Hell is other browsers - Sartre. The touch events. Peter-Paul Koch (ppk)     WebExpo, 24 September 2010 Hell is other browsers - Sartre The touch events Peter-Paul Koch (ppk) http://quirksmode.org http://twitter.com/ppk WebExpo, 24 September 2010 The desktop web Boring! - Only five browsers with only one

More information

University of Cincinnati. P5.JS: Getting Started. p5.js

University of Cincinnati. P5.JS: Getting Started. p5.js p5.js P5.JS: Getting Started Matthew Wizinsky University of Cincinnati School of Design HTML + CSS + P5.js File Handling & Management Environment Canvas Coordinates Syntax Drawing Variables Mouse Position

More information

Visual Encoding Design

Visual Encoding Design CSE 442 - Data Visualization Visual Encoding Design Jeffrey Heer University of Washington Review: Expressiveness & Effectiveness / APT Choosing Visual Encodings Assume k visual encodings and n data attributes.

More information

Web Programming 1 Packet #5: Canvas and JavaScript

Web Programming 1 Packet #5: Canvas and JavaScript Web Programming 1 Packet #5: Canvas and JavaScript Name: Objectives: By the completion of this packet, students should be able to: use JavaScript to draw on the canvas element Canvas Element. This is a

More information

Data Visualization (DSC 530/CIS )

Data Visualization (DSC 530/CIS ) Data Visualization (DSC 530/CIS 602-02) Web Programming Dr. David Koop 2 What languages do we use on the Web? 3 Languages of the Web HTML CSS SVG JavaScript - Versions of Javascript: ES6, ES2015, ES2017

More information

Paid user:1,600,000 $3 /month

Paid user:1,600,000 $3 /month Paid user:1,600,000 $3 /month Paid user:1,600,000 $3 /month Free user:25,000,000 Weather Geek s Party... culture snow qanuk qengaruk aniu nutaryuk snow nevluk natquik kanevvluk muruaneq kaneq qanisquineq

More information

FrTime: A Language for Reactive Programs

FrTime: A Language for Reactive Programs FrTime: A Language for Reactive Programs Version 5.3.6 Greg Cooper August 9, 2013 #lang frtime The frtime language supports declarative construction of reactive systems in a syntax very similar to that

More information

Lab 4: create a Facebook Messenger bot and connect it to the Watson Conversation service

Lab 4: create a Facebook Messenger bot and connect it to the Watson Conversation service Lab 4: create a Facebook Messenger bot and connect it to the Watson Conversation service Overview In this lab, you'll create advanced Node-RED flows that: Connect the Watson Conversation service to Facebook

More information

Data Visualization (DSC 530/CIS )

Data Visualization (DSC 530/CIS ) Data Visualization (DSC 530/CIS 602-01) Data Dr. David Koop HTML and CSS HTML: Tags define the boundaries of the structures of the content this is cool. What about this?

More information

About the Tutorial. Audience. Prerequisites. Copyright and Disclaimer. D3.js

About the Tutorial. Audience. Prerequisites. Copyright and Disclaimer. D3.js About the Tutorial D3 stands for Data-Driven Documents. D3.js is a JavaScript library for manipulat ing documents based on data. D3.js is a dynamic, interactive, online data visualizations framework used

More information

<Insert Picture Here> JavaFX Overview April 2010

<Insert Picture Here> JavaFX Overview April 2010 JavaFX Overview April 2010 Sébastien Stormacq Sun Microsystems, Northern Europe The following is intended to outline our general product direction. It is intended for information

More information

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript PHP Curriculum Module: HTML5, CSS3 & JavaScript Introduction to the Web o Explain the evolution of HTML o Explain the page structure used by HTML o List the drawbacks in HTML 4 and XHTML o List the new

More information

Touch Forward. Bill Fisher. #touchfwd. Developing Awesome Cross-Browser Touch

Touch Forward. Bill Fisher. #touchfwd. Developing Awesome Cross-Browser Touch Touch Forward Developing Awesome Cross-Browser Touch Interactions Bill Fisher @fisherwebdev #touchfwd Super F*cking Important yeah, it s important. http://commons.wikimedia.org/wiki/file:071228_human_hands.jpg

More information

CS 4460 Intro. to Information Visualization Sep. 18, 2017 John Stasko

CS 4460 Intro. to Information Visualization Sep. 18, 2017 John Stasko Multivariate Visual Representations 1 CS 4460 Intro. to Information Visualization Sep. 18, 2017 John Stasko Learning Objectives For the following visualization techniques/systems, be able to describe each

More information

Lecture Topic Projects 1 Intro, schedule, and logistics 2 Applications of visual analytics, data types 3 Data sources and preparation Project 1 out 4

Lecture Topic Projects 1 Intro, schedule, and logistics 2 Applications of visual analytics, data types 3 Data sources and preparation Project 1 out 4 Lecture Topic Projects 1 Intro, schedule, and logistics 2 Applications of visual analytics, data types 3 Data sources and preparation Project 1 out 4 Data reduction, similarity & distance, data augmentation

More information

ITI 1120 Lab #9. Slides by: Diana Inkpen, Alan Williams, Daniel Amyot Some original material by Romelia Plesa

ITI 1120 Lab #9. Slides by: Diana Inkpen, Alan Williams, Daniel Amyot Some original material by Romelia Plesa ITI 1120 Lab #9 Slides by: Diana Inkpen, Alan Williams, Daniel Amyot Some original material by Romelia Plesa 1 Objectives Review fundamental concepts Example: the Time class Exercises Modify the Time class

More information

Evaluating the Quality of Multiple-Choice Tests with Automatically Generated Visualizations

Evaluating the Quality of Multiple-Choice Tests with Automatically Generated Visualizations Evaluating the Quality of Multiple-Choice Tests with Automatically Generated Visualizations An Application of Scalable Vector Graphics in Medical Education Dennis Toddenroth, Dr. med Thomas Frankewitsch

More information

CSE Data Visualization. Multidimensional Vis. Jeffrey Heer University of Washington

CSE Data Visualization. Multidimensional Vis. Jeffrey Heer University of Washington CSE 512 - Data Visualization Multidimensional Vis Jeffrey Heer University of Washington Last Time: Exploratory Data Analysis Exposure, the effective laying open of the data to display the unanticipated,

More information

D3: The Crash Course

D3: The Crash Course D3: The Crash Course Chad Stolper chadstolper@gatech.edu Chad Stolper CSE 6242 Guest Lecture 1 D3: The Early Sticking Points Chad Stolper CSE 6242 Guest Lecture 2 D3: Only the Beginning Chad Stolper CSE

More information

CISC 1600, Lab 3.1: Processing

CISC 1600, Lab 3.1: Processing CISC 1600, Lab 3.1: Processing Prof Michael Mandel 1 Getting set up For this lab, we will be using OpenProcessing, a site for building processing sketches online using processing.js. 1.1. Go to https://www.openprocessing.org/class/57767/

More information

Definitions. Interfaces. Example. Create a canvas. Setting up the event handlers. Tracking new touches

Definitions. Interfaces. Example. Create a canvas. Setting up the event handlers. Tracking new touches Intro In order to provide quality support for touch-based user interfaces, touch events offer the ability to interpret finger (or stylus) activity on touch screens or trackpads. The touch events interfaces

More information

FrTime: A Language for Reactive Programs

FrTime: A Language for Reactive Programs FrTime: A Language for Reactive Programs Version 7.2.0.12 Greg Cooper April 1, 2019 #lang frtime package: frtime The frtime language supports declarative construction of reactive systems in a syntax very

More information

Package processanimater

Package processanimater Type Package Package processanimater Title Process Map Token Replay Animation Version 0.3.0 October 5, 2018 Token replay animation for process maps created with 'processmapr' by using SVG animations ('SMIL')

More information

Interactive Data Analysis

Interactive Data Analysis domain specific languages for Interactive Data Analysis Jeffrey Heer Stanford University 1 HTML / CSS Table SELECT customer_id, customer_name, COUNT(order_id) as total FROM customers INNER JOIN orders

More information

QMiner is a data analytics platform for processing large-scale real-time streams containing structured and unstructured data.

QMiner is a data analytics platform for processing large-scale real-time streams containing structured and unstructured data. Data analytics with QMiner This topic provides a practical insights on data analytics using QMiner. QMiner implements a comprehensive set of techniques for supervised, unsupervised and active learning

More information

ORACLE DATABASE 12C INTRODUCTION

ORACLE DATABASE 12C INTRODUCTION SECTOR / IT NON-TECHNICAL & CERTIFIED TRAINING COURSE In this training course, you gain the skills to unleash the power and flexibility of Oracle Database 12c, while gaining a solid foundation of database

More information

CREATE SASSY WEB PARTS. Developer Guide to SASS usage in SPFx

CREATE SASSY WEB PARTS. Developer Guide to SASS usage in SPFx CREATE SASSY WEB PARTS Developer Guide to SASS usage in SPFx !!! WARNING!!! YOU WILL SEE SOURCE CODE!!! WARNING!!! OUR GOALS Sketch and develop web parts Create your own reusable CSS Handle external

More information

CSE Data Visualization. Multidimensional Vis. Jeffrey Heer University of Washington

CSE Data Visualization. Multidimensional Vis. Jeffrey Heer University of Washington CSE 512 - Data Visualization Multidimensional Vis Jeffrey Heer University of Washington Last Time: Exploratory Data Analysis Exposure, the effective laying open of the data to display the unanticipated,

More information

who "name": "ShihChi Huang", "work": "mobile Netflix", "meta": github/npm/twitter"

who name: ShihChi Huang, work: mobile Netflix, meta: github/npm/twitter RxJS for f2e who { } "name": "ShihChi Huang", "work": "mobile engineer @ Netflix", "meta": "huang47 @ github/npm/twitter" async is hard sync // value is immediately available function getvaluesync(value)

More information

D3js Guide. D3js Guide

D3js Guide. D3js Guide We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our ebooks online or by storing it on your computer, you have convenient answers with d3js guide. To get started

More information

Visualizing Information with

Visualizing Information with Visualizing Information with HTML5 @synodinos 35,000 years ago Chauvet cave, southern France By far the oldest paintings ever discovered Hundreds of paintings At least 13 different species Viubk source

More information

A JavaScript Framework for Presentations and Animations on Computer Science

A JavaScript Framework for Presentations and Animations on Computer Science A JavaScript Framework for Presentations and Animations on Computer Science Laszlo Korte Bachelor Thesis Technical Aspects of Multimodal Systems Department of Informatics University of Hamburg 1 / 76 Outline

More information

PASS4TEST 専門 IT 認証試験問題集提供者

PASS4TEST 専門 IT 認証試験問題集提供者 PASS4TEST 専門 IT 認証試験問題集提供者 http://www.pass4test.jp 1 年で無料進級することに提供する Exam : 70-480 Title : Programming in HTML5 with JavaScript and CSS3 Vendor : Microsoft Version : DEMO Get Latest & Valid 70-480 Exam's

More information

GIMP WEB 2.0 BUTTONS

GIMP WEB 2.0 BUTTONS GIMP WEB 2.0 BUTTONS Web 2.0 Navigation: Web 2.0 Button with Navigation Arrow GIMP is all about IT (Images and Text) WEB 2.0 NAVIGATION: BUTTONS_WITH_NAVIGATION_ARROW This button navigation will be designed

More information

Bioinformatics Resources

Bioinformatics Resources Bioinformatics Resources Lecture & Exercises Prof. B. Rost, Dr. L. Richter, J. Reeb Institut für Informatik I12 Slides by D. Nechaev Recap! Why do we even bother with JavaScript?! Because JavaScript allows

More information

Overview of Computer Graphics

Overview of Computer Graphics Application of Computer Graphics UNIT- 1 Overview of Computer Graphics Computer-Aided Design for engineering and architectural systems etc. Objects maybe displayed in a wireframe outline form. Multi-window

More information

From Data to Map in 30 Minutes. Aileen Buckley, PhD

From Data to Map in 30 Minutes. Aileen Buckley, PhD From Data to Map in 30 Minutes Aileen Buckley, PhD This session Crater Lake online map From NPS: https://www.nps.gov/carto/hfc/carto/media/crlamap1.pdf Download Crater Lake map packages here: ArcGIS Pro

More information

Time series in html Canvas

Time series in html Canvas Time series in html Canvas In this tutorial, we will create an html document and use it to animate a time series. html html (Hypertext Markup Language) is used to make web pages. No software is needed

More information

Tutorial: How to Build a Custom Panel on Banana

Tutorial: How to Build a Custom Panel on Banana Tutorial: How to Build a Custom Panel on Banana Source: https://github.com/lucidworks/banana/wiki/tutorial:-how-to-build-a-custom-panel In this tutorial, we are going to show you how to build a new custom

More information

Translating HornlogEq RuleML to Grailog for SVG Visualization. Leah Bidlake RuleML Webinar June 20, 2016

Translating HornlogEq RuleML to Grailog for SVG Visualization. Leah Bidlake RuleML Webinar June 20, 2016 Translating HornlogEq RuleML to Grailog for SVG Visualization Leah Bidlake RuleML Webinar June 20, 2016 Outline 1 Introduction Related Work Objectives Grailog KS Viz 2.0 Architecture Implementation Test

More information

Data Visualization (DSC 530/CIS )

Data Visualization (DSC 530/CIS ) Data Visualization (DSC 530/CIS 602-01) JavaScript Dr. David Koop Quiz Given the following HTML, what is the selector for the first div? the super Bowl

More information

Ontwikkel Custom Visuals met D3.js

Ontwikkel Custom Visuals met D3.js Ontwikkel Custom Visuals met D3.js Arthur Graus Gebruikersdag 2018 Arthur Graus Power BI Trainer Consultant Developer info@arthurgraus.nl http://www.arthurgraus.nl Query PowerQuery DAX DAX Report.PBIX

More information

CS7026 HTML5. Canvas

CS7026 HTML5. Canvas CS7026 HTML5 Canvas What is the element HTML5 defines the element as a resolution-dependent bitmap canvas which can be used for rendering graphs, game graphics, or other visual images

More information

Grailog KS Viz: A Grailog Visualizer for Datalog RuleML Using an XSLT Translator to SVG

Grailog KS Viz: A Grailog Visualizer for Datalog RuleML Using an XSLT Translator to SVG RuleML 2013 7th International Rule Challenge University of Washington, July 11-13 th, 2013, Seattle, WA Martin Koch, Sven Schmidt, Harold Boley, Rainer Herpers Grailog KS Viz: A Grailog Visualizer for

More information

D3: The Crash Course

D3: The Crash Course D3: The Crash Course aka: D3: The Early Sticking Points aka: D3: Only the Beginning Chad Stolper chadstolper@gatech.edu Chad Stolper CSE 6242 Guest Lecture 1 http://bl.ocks.org/mbostock/1256572 Chad Stolper

More information

BASICS OF PIXLR EDITOR

BASICS OF PIXLR EDITOR BASICS OF PIXLR EDITOR Pixlr is a website which you can edit your images professionally. It is a cloud cased system and founded in Sweden. It is similar to Photoshop (but it s free to use online) and you

More information

MIDTERM EXAM (Solutions)

MIDTERM EXAM (Solutions) MIDTERM EXAM (Solutions) Total Score: 100, Max. Score: 83, Min. Score: 26, Avg. Score: 57.3 1. (10 pts.) List all major categories of programming languages, outline their definitive characteristics and

More information

SAS Visual Analytics 8.2: Working with Report Content

SAS Visual Analytics 8.2: Working with Report Content SAS Visual Analytics 8.2: Working with Report Content About Objects After selecting your data source and data items, add one or more objects to display the results. SAS Visual Analytics provides objects

More information

CISC 1600, Lab 3.2: Interactivity in Processing

CISC 1600, Lab 3.2: Interactivity in Processing CISC 1600, Lab 3.2: Interactivity in Processing Prof Michael Mandel 1 Getting set up For this lab, we will be using OpenProcessing, a site for building processing sketches online using processing.js. 1.1.

More information

Adobe Animate Basics

Adobe Animate Basics Adobe Animate Basics What is Adobe Animate? Adobe Animate, formerly known as Adobe Flash, is a multimedia authoring and computer animation program. Animate can be used to design vector graphics and animation,

More information

Maurizio Tesconi 24 marzo 2015

Maurizio Tesconi 24 marzo 2015 Maurizio Tesconi 24 marzo 2015 Raster graphics images Lossy (jpeg, jpeg2000) Lossless (gif, png, >ff, ) Fixed resolu>on Can be very large Original informa>on is lost Difficult to add metadata Difficult

More information

Frontend II: Javascript and DOM Programming. Wednesday, January 7, 15

Frontend II: Javascript and DOM Programming. Wednesday, January 7, 15 6.148 Frontend II: Javascript and DOM Programming Let s talk about Javascript :) Why Javascript? Designed in ten days in December 1995! How are they similar? Javascript is to Java as hamster is to ham

More information

GSYS (Graph Suchi Yomitori System)

GSYS (Graph Suchi Yomitori System) GSYS (Graph Suchi Yomitori System) 28. Jan. 2005, Koji Arai (1) THIS IS THE SYSTEM IN ORDER TO DIGTIZE THE DATA ON THE FIGURE SUCH AS EXPERIMENTAL DATA ON THE PRINTED MATTER. You can download files from

More information

Blitz: Automating Interaction in Visualization

Blitz: Automating Interaction in Visualization Blitz: Automating Interaction in Visualization Catherine Mullings Stanford University cmulling@stanford.edu Ben-han Sung Stanford University bsung93@stanford.edu Andrei Terentiev Stanford University andreit1@stanford.edu

More information

PASS4TEST. IT Certification Guaranteed, The Easy Way! We offer free update service for one year

PASS4TEST. IT Certification Guaranteed, The Easy Way!   We offer free update service for one year PASS4TEST \ http://www.pass4test.com We offer free update service for one year Exam : 70-480 Title : Programming in HTML5 with JavaScript and CSS3 Vendor : Microsoft Version : DEMO Get Latest & Valid 70-480

More information

Graphics. HCID 520 User Interface Software & Technology

Graphics. HCID 520 User Interface Software & Technology Graphics HCID 520 User Interface Software & Technology PIXELS! 2D Graphics 2D Raster Graphics Model Drawing canvas with own coordinate system. Origin at top-left, increasing down and right. Graphics

More information

HO-FL1: INTRODUCTION TO FLASH

HO-FL1: INTRODUCTION TO FLASH HO-FL1: INTRODUCTION TO FLASH Introduction Flash is software authoring package for creating scalable, interactive animations (or movies) for inclusion in web pages. It can be used to create animated graphics,

More information