Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
前端網頁資料視覺化設計
Search
tkirby
December 22, 2015
Technology
1
430
前端網頁資料視覺化設計
前端網頁資料視覺化設計 / 分享於現代化網站技術分享日
tkirby
December 22, 2015
Tweet
Share
More Decks by tkirby
See All by tkirby
Theory of Graphical Perception
tkirby
0
440
Open Refine Course
tkirby
0
180
Language Reference
tkirby
0
95
新聞記者的程式設計第一課
tkirby
0
500
Visualization over Web
tkirby
0
110
迎戰壞資料 @ dbootcamp Taipei
tkirby
0
720
Rasterize D3.js
tkirby
7
1.6k
SVG + D3.JS Course Slide
tkirby
0
200
資料新聞學手冊導讀
tkirby
0
230
Other Decks in Technology
See All in Technology
Creating Intuitive Developer Tool in Swift
giginet
PRO
0
180
APIs for AI: Have we failed?
zdne
0
140
カメラ単体で物体の3次元 座標を扱う方法
kenmatsu4
1
190
RSGT Walk Through
kawaguti
PRO
2
420
本番のトラフィック量でHudiを検証して見えてきた課題
joker1007
2
290
Delta Commit…の最近...
akuwano
2
140
実は仲良し?Amplify Gen2と生成AI
mkdev10
1
180
VueとViteで作るUIコンポーネントライブラリ ~デザインシステムとプロダクトの理想的な分離を目指して~ / 20241019_cloudsign_VueFesJapan2024_1
bengo4com
8
4.9k
自動テストの信頼性を高めるミューテーションテストの活用に向けて
tarappo
2
110
S3上のログを分析したいだけなのに
mitsuo_sys
0
130
20241017_俺たちは雰囲気で scope をやっているけどもうちょっとなんとかならんのか?
tokai235
0
420
複数の外部サービスデータの統合と変換を実現する Railsのインポートアーキテクチャ / Rails import architecture for integration and transformation of multiple external service data
aiandrox
0
390
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
31
1.7k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Designing Experiences People Love
moore
138
23k
Docker and Python
trallard
40
3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Learning to Love Humans: Emotional Interface Design
aarron
272
40k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
3
350
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Statistics for Hackers
jakevdp
796
220k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
YesSQL, Process and Tooling at Scale
rocio
167
14k
GitHub's CSS Performance
jonrohan
1030
460k
Transcript
網⾴頁前端視覺化技術 infographics.tw
None
None
None
Nigel Holmes TIME Magazine
$IBSU+VOL%FCBUF &EXBSE5VGUF JO7%2* 「凡對讀者的智⼒力抱著懷疑態度來對待的⼈人, 也無法寫出像樣的作品。」 「如果統計數字枯燥乏味的話, 那你肯定弄錯了數字」 IJUF
$IBSU+VOL%FCBUF &EXBSE5VGUF JO7%2* %BUB*OL3BUJP *OLPG%BUB 5PUBM*OL6TFE
None
None
None
None
1854 1858 1869
http://www.nytimes.com/interactive/2015/03/19/upshot/3d-yield-curve-economic-growth.html?_r=0
data = [1,2,3,4,5,6,7,8]
data = [1,2,3,4,5,6,7,8] <div style=“width:100px”></div> <div style=“width:200px”></div> <div style=“width:300px”></div> <div
style=“width:800px”></div> …..
2011 Mike Bostock
TA G DATA +
data = [1,2,3,4,5,6,7,8]
data = [1,2,3,4,5,6,7,8] d3.select(“#root”) .selectAll(“div”) .data(data)
data = [1,2,3,4,5,6,7,8] enter() exit() d3.select(“#root”) .selectAll(“div”) .data(data)
data = [1,2,3,4,5,6,7,8] enter() exit() d3.select(“#root”) .selectAll(“div”) .data(data) append remove
data = [1,2,3,4,5,6,7,8] d3.select(“div:nth-of-type(5)”) .text(function(v) { return v; });
d3.select(“#root”) .selectAll(“div”) .style({ “width”: function(v) { return v + “px”;
}}) .attr({ … }); Dynamic Property
None
None
MathML
MathML X3D
MathML X3D SMIL
MathML X3D SMIL Document Agnostic
http://zbryikt.github.io/visualize/banana/ Banana in X3D
Transition d3.select(“#root”) .selectAll(“div”) .transition() .duration(1000) .style({ “width”: function(v) { return
v + “px”; }});
http://bl.ocks.org/mbostock/1256572 D3 Show Reel
None
http://bl.ocks.org/infographicstw/raw/122779b04901c4ffa455/5.html Play with Force Layout
None
None
Processing 2001, MIT Media Lab. Simplified Java
Processing 2001, MIT Media Lab. Simplified Java Processing.js p5.js
d3.select(“#root”) .selectAll(“div”) .data(d) .enter() .append(“div”) .style({ width: function(v) { return
v+”px”; }, height: “10px” } ); <div id=“root”></div> function draw() { for(i in d) { rect(0,i*10, d[i],(i+1)*10); } } d3.js p5.js
d3.select(“#root”) .selectAll(“div”) .data(d) .enter() .append(“div”) .style({ width: function(v) { return
v+”px”; }, height: “10px” } ); <div id=“root”></div> function draw() { for(i in d) { rect(0,i*10, d[i],(i+1)*10); } } d3.js p5.js CSS Selector HTML CSS D3.js
d3.select(“#root”) .selectAll(“div”) .data(d) .enter() .append(“div”) .style({ width: function(v) { return
v+”px”; }, height: “10px” } ); <div id=“root”></div> function draw() { for(i in d) { rect(0,i*10, d[i],(i+1)*10); } } d3.js p5.js draw in draw rect by rect
But….. Performance?
p5.js
2D webGL renderer with canvas fallback
D3.js Pixi.js
快 易 強 難 慢 弱 ? d3.js p5.js pixi.js
PathGL
PathGL
PathGL
Rasterize D3.js D3.js HTML SVG X3D CUSTOM CANVAS SVG 3D
CANVAS WEBGL CA NV AS CANVAS DATA BINDING INTERFACE IMPLEMENTATION CSS 3D CA NV AS PHANTOMJS or NATIVE PORTING SERVER SIDE
D3 + Canvas ? D3 + NodeJS ? D3 +
ReactJS ? D3 + WebWorker ?
TO BE CONTINUE …
Let’s Talk about Responsive
None
Large in Size Low Quality
Small in Size High Quality
w (x1,y1) <svg width=“w” height=“h” viewBox=“x1 y1 x2 y1”> h
(x2,y2)
(x1,y1) (x2,y2) w h
preserveAspectRatio xMin xMid xMax yMin yMid yMax
preserveAspectRatio=“xMidYMid” xMin xMid xMax yMin yMid yMax
None
None
None
http://www.nytimes.com/interactive/2015/06/17/world/middleeast/map-isis-attacks-around-the-world.html?smid=tw-nytimes&_r=1
None
None
None
(x1,y1) (x2,y2) w h x scale y scale
d3.scale.linear() data 0~10 scale coord 0~w
d3.svg.axis().tick(w/k)
07/2015, Nadieh @ Visual Cinnamon
None
None
None
None
None
None
http://www.foundi.info/lab/badneighbor/
總結 • 整體原則與 RWD 相同 • 考慮圖⽂文搭配的閱讀體驗 • 彈性處理圖表本⾝身的尺⼨寸 •
可以簡化的資料應統⼀一簡化,沒有平台差異 • 不適合簡化的資料,再考慮分裝置處理 • 永遠考慮更簡潔的表現形式
Visualization without Web
2015.09 shown by Republican to the congress to refund Planned
Parenthood
proposed actually 2015.09 shown by Republican to the congress to
refund Planned Parenthood
http://guns.periscopic.com/
( 2007 Proc. InfoViz )
None
None
None
None
w w <canvas width=“w” height=“h” style=“width:wpx;height:hpx”> h h