visualization over web: tools and tips-吳泰輝

88
Visualization over Web Tools and Tips Kirby

Post on 21-Apr-2017

5.989 views

Category:

Data & Analytics


1 download

TRANSCRIPT

Page 1: Visualization over Web: Tools and Tips-吳泰輝

Visualization over WebTools and Tips

Kirby

Page 2: Visualization over Web: Tools and Tips-吳泰輝

Responsive Visualization

Responsive Visualization RWD

inData Viz

Page 3: Visualization over Web: Tools and Tips-吳泰輝

本網站最佳瀏覽模式建議為1024 x 768,建議瀏覽器為IE 6或FireFox2.0以上版本

Page 4: Visualization over Web: Tools and Tips-吳泰輝

1920px

1024px

Page 5: Visualization over Web: Tools and Tips-吳泰輝

800px

Page 6: Visualization over Web: Tools and Tips-吳泰輝

on iPhone 4s mobile ver.

Page 7: Visualization over Web: Tools and Tips-吳泰輝
Page 8: Visualization over Web: Tools and Tips-吳泰輝

Diversity of Android Camp

Page 9: Visualization over Web: Tools and Tips-吳泰輝
Page 10: Visualization over Web: Tools and Tips-吳泰輝
Page 11: Visualization over Web: Tools and Tips-吳泰輝
Page 12: Visualization over Web: Tools and Tips-吳泰輝
Page 13: Visualization over Web: Tools and Tips-吳泰輝

Landscape x 10Portrait x 6

Desktop x 12

Mobile x 4

Page 14: Visualization over Web: Tools and Tips-吳泰輝
Page 15: Visualization over Web: Tools and Tips-吳泰輝
Page 16: Visualization over Web: Tools and Tips-吳泰輝

Raster vs Vector

Page 17: Visualization over Web: Tools and Tips-吳泰輝

Large in SizeLow Quality

Page 18: Visualization over Web: Tools and Tips-吳泰輝

Small in SizeHigh Quality

Page 19: Visualization over Web: Tools and Tips-吳泰輝

width

height

(x1,y1)

(x2,y2)

<svg width=“w” height=“h” viewBox=“x1 y1 x2 y1”>

Page 20: Visualization over Web: Tools and Tips-吳泰輝
Page 21: Visualization over Web: Tools and Tips-吳泰輝

preserveAspectRatio

xMin xMid xMax

yMinyMid

yMax

Page 22: Visualization over Web: Tools and Tips-吳泰輝

<SVG width=“800px” height=“600px” viewBox=“0 0 400 300” preserveAspectRatio=“xMidYMid”>

Page 23: Visualization over Web: Tools and Tips-吳泰輝

http://www.nytimes.com/interactive/2015/06/17/world/middleeast/map-isis-attacks-around-the-world.html?smid=tw-nytimes&_r=1

Page 24: Visualization over Web: Tools and Tips-吳泰輝

Desktop Mobile

Page 25: Visualization over Web: Tools and Tips-吳泰輝
Page 26: Visualization over Web: Tools and Tips-吳泰輝
Page 27: Visualization over Web: Tools and Tips-吳泰輝
Page 28: Visualization over Web: Tools and Tips-吳泰輝
Page 29: Visualization over Web: Tools and Tips-吳泰輝

ai2html.jsx → Presets\zh_TW\指令檔

Page 30: Visualization over Web: Tools and Tips-吳泰輝

檔案 → 指令檔 → ai2html

Page 31: Visualization over Web: Tools and Tips-吳泰輝

ai2html-settings:產⽣生檔案的設定 ai2html-css:在產出檔案中插⼊入額外的 CSS ai2html-js:在產出檔案中插⼊入額外的 JS ai2html-html:在產出檔案中插⼊入額外的 HTML ai2html-text:設定變數,⽅方便在其它⽂文字⽅方塊中引⽤用

* variable-name: value」設定變數 以 <%=variable-name%>使⽤用變數

Page 32: Visualization over Web: Tools and Tips-吳泰輝
Page 33: Visualization over Web: Tools and Tips-吳泰輝
Page 34: Visualization over Web: Tools and Tips-吳泰輝
Page 35: Visualization over Web: Tools and Tips-吳泰輝

19 charts

Page 36: Visualization over Web: Tools and Tips-吳泰輝
Page 37: Visualization over Web: Tools and Tips-吳泰輝

WhyRasterize?

Page 38: Visualization over Web: Tools and Tips-吳泰輝

Performance Optimization

why rasterize?

Page 39: Visualization over Web: Tools and Tips-吳泰輝

http://www.foundi.info/lab/badneighbor/

Page 40: Visualization over Web: Tools and Tips-吳泰輝

I'm drawing a line consisting of 5000 separate segments and recording total elapsed time and the time taken for each 250 line-segment chunk.

* SVG Path Benchmark: * http://bl.ocks.org/1296930

* Canvas Path Benchmark: * http://bl.ocks.org/1297383

Drawing into an HTML5Canvas can be 40x fasterthan using SVG

Page 41: Visualization over Web: Tools and Tips-吳泰輝

Server Side D3.jsnpm install d3 jsdom domino

d3.select(jsdom.jsdom().body)

with jsdom

d3.select( domino.createWindow(“<div></div>”) .document.querySelector(“div") )

with domino

Page 42: Visualization over Web: Tools and Tips-吳泰輝

ClientServer

render.jsfunction render(node,data) { d3.select(node).select("circle") .data(data).enter().append("circle"); } module.exports = render;

require(“./render”);<script src=“bundle.js”>

browserify

render = require(“./render.js”);

Page 43: Visualization over Web: Tools and Tips-吳泰輝

client server

500ms delay 2.5MB in size

Page 44: Visualization over Web: Tools and Tips-吳泰輝

Rasterize SVG

require(“canvg”); require(“canvas”);

canvg(new canvas(), “<svg> …</svg>”);

using node-canvg

Page 45: Visualization over Web: Tools and Tips-吳泰輝

client server svg server png

500ms delay 2.5MB in size 112k in size10ms loading

Page 46: Visualization over Web: Tools and Tips-吳泰輝

D3.js Canvas

D3Data DOM

DOM to Canvas

Canvas

DOM to Canvas

Page 47: Visualization over Web: Tools and Tips-吳泰輝

clientd3js + svg

serversvg

serverpng

clientd3js + canvas

500ms 300ms 900ms 10ms

Page 48: Visualization over Web: Tools and Tips-吳泰輝

SVG CANVAS

Animation Comparisonusing Force Layout

http://infographicstw.github.io/d3canvas/d3cmove.html

Page 49: Visualization over Web: Tools and Tips-吳泰輝

Marketing and

Social Media

why rasterize?

Page 50: Visualization over Web: Tools and Tips-吳泰輝
Page 51: Visualization over Web: Tools and Tips-吳泰輝
Page 52: Visualization over Web: Tools and Tips-吳泰輝
Page 53: Visualization over Web: Tools and Tips-吳泰輝

var obj = { method: ‘feed’, link: ‘http://your.com/viz/?' + keyword, name: keyword + ‘的顏⾊色是 …. !’ picture: yourImageURL } FB.ui(obj, function() {});

Page 54: Visualization over Web: Tools and Tips-吳泰輝

Applications

why rasterize?

Page 55: Visualization over Web: Tools and Tips-吳泰輝

Image Based Animation

Page 56: Visualization over Web: Tools and Tips-吳泰輝

loading.io

Page 57: Visualization over Web: Tools and Tips-吳泰輝

<x3d> <scene> <shape><box></box></shape> </scene> </x3d>

d3.select(“x3d scene”).selectAll(“shape”) .data(data) .append(“shape”) .append(“box”) …

D3.js + X3DOM

Page 58: Visualization over Web: Tools and Tips-吳泰輝

Rasterize HTML

<svg> <foreignObject width="100" height="50" requiredExtensions="http://www.w3.org/1999/xhtml"> <body xmlns="http://www.w3.org/1999/xhtml"> <p>Here is a paragraph that requires word wrap</p> </body> </foreignObject> </svg

use SVG foreignObject

canvg

Page 59: Visualization over Web: Tools and Tips-吳泰輝

Rasterize D3.js

D3.js

HTML SVGX3D CUSTOM

CANVASSVG

3D

CANVAS

WEBGL CANVASCANVAS

DATA BINDING

INTERFACE

IMPLEMENTATION

CSS 3DCANVAS

PHANTOMJS or NATIVE PORTING SERVER SIDE

Page 60: Visualization over Web: Tools and Tips-吳泰輝

D3.js powerful client-side visualisation library

SVG responsive & interactive Graphics DOM

Canvas

fast, small and social-media friendly browser compatibility, off-load from serverPNG

GIF animation preview in non-browser environment better browser compatibility thean CSS3D & SMIL

faster interactive rendering make it possible to rasterise

HTML leverge layout & flow engine work with css3 animation

X3D directly use prebuilt 3D Model

Different Purpose

Page 61: Visualization over Web: Tools and Tips-吳泰輝

Compatibility

why rasterize?

Page 62: Visualization over Web: Tools and Tips-吳泰輝
Page 63: Visualization over Web: Tools and Tips-吳泰輝
Page 64: Visualization over Web: Tools and Tips-吳泰輝
Page 65: Visualization over Web: Tools and Tips-吳泰輝
Page 66: Visualization over Web: Tools and Tips-吳泰輝
Page 67: Visualization over Web: Tools and Tips-吳泰輝

0.3% Android 2 in all page views

Page 68: Visualization over Web: Tools and Tips-吳泰輝

1% IE 7 + 8 in all page views

Page 69: Visualization over Web: Tools and Tips-吳泰輝

1%(IE) + 0.3%(Android2)

4 people in 300

can’t read SVG format

~

it’s about 235 people in all visitors

( lost 2 customers with 1% conversion rate )

Page 70: Visualization over Web: Tools and Tips-吳泰輝
Page 71: Visualization over Web: Tools and Tips-吳泰輝

25% traffic from handheld device

Page 72: Visualization over Web: Tools and Tips-吳泰輝

PrecisionGestureButtonsHoverCursor

High LowEasyHard

3+ 1NoYes

Yes No

Page 73: Visualization over Web: Tools and Tips-吳泰輝

Buy Now Buy Now Buy Now

Page 74: Visualization over Web: Tools and Tips-吳泰輝

Buy NowBuy Now Buy Now

tips!

Mouseover doesn’t work

Page 75: Visualization over Web: Tools and Tips-吳泰輝

Portrait mode is the common scenario

Page 76: Visualization over Web: Tools and Tips-吳泰輝

Performance and Bandwidth

Page 77: Visualization over Web: Tools and Tips-吳泰輝

Visualization withWeb Resources

Page 78: Visualization over Web: Tools and Tips-吳泰輝

https://www.project-tp.com/

Page 79: Visualization over Web: Tools and Tips-吳泰輝
Page 80: Visualization over Web: Tools and Tips-吳泰輝

ON BROADWAY: Represent our cities in new ways.http://www.on-broadway.nyc/app/#http://www.fastcodesign.com/3043091/infographic-of-the-day/massive-data-visualization-brings-nycs-busiest-street-to-life#7

Page 81: Visualization over Web: Tools and Tips-吳泰輝

http://www.clicktorelease.com/code/streetViewReflectionMapping/

Page 82: Visualization over Web: Tools and Tips-吳泰輝

https://www.biodigital.com/developers

Page 83: Visualization over Web: Tools and Tips-吳泰輝

http://graphics.wsj.com/3d-nasdaq/

Page 84: Visualization over Web: Tools and Tips-吳泰輝
Page 85: Visualization over Web: Tools and Tips-吳泰輝

http://shinydemos.com/facekat/

Page 86: Visualization over Web: Tools and Tips-吳泰輝

http://bignerdranch.github.io/music-frequency-d3/

Page 87: Visualization over Web: Tools and Tips-吳泰輝

http://dinahmoelabs.com/plink

Page 88: Visualization over Web: Tools and Tips-吳泰輝

Wrap Up

• Consider Different Device / Resolution / Browser

• Use Vector / Raster Image on Demand

• Leverage the Power of Web Services / API