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
basic of data visualization and d3.js demonstra...
Search
muddydixon
March 28, 2023
Programming
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
basic of data visualization and d3.js demonstration
muddydixon
March 28, 2023
More Decks by muddydixon
See All by muddydixon
企業と勉強会
muddydixon
0
99
study before deeplearning @YAPC2015
muddydixon
0
140
d3.js demonstration
muddydixon
0
100
data visualization @html5study
muddydixon
0
110
Time Series Prediction@JubatusCasualTalk2
muddydixon
0
92
Perl for Visualization@YAPC2013
muddydixon
0
120
Time Series Analysis by JavaScript @LLMatsuri2013
muddydixon
0
140
How to create my own Hadoop MultipleInput@HadoopCodeReading8
muddydixon
0
93
BigDataAnalytics beginning by mongo-hadoop@MongoTokyo2012
muddydixon
0
70
Other Decks in Programming
See All in Programming
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
130
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
350
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
350
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
390
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.8k
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
210
自作OSでスライド発表する
uyuki234
1
3.7k
20260623_Loop Engineeringで自分の分身の問い合わせBotを作る
ryugen04
0
180
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
180
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
Webフレームワークの ベンチマークについて
yusukebe
0
200
Featured
See All Featured
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
40k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
180
Amusing Abliteration
ianozsvald
1
220
Color Theory Basics | Prateek | Gurzu
gurzu
0
380
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Navigating Weather and Climate Data
rabernat
0
280
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
370
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.1k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Building Applications with DynamoDB
mza
96
7.1k
Transcript
σʔλՄࢹԽͷجૅ ͱ %ͷσϞ σʔλՄࢹԽษڧձ IUUQXXX[VTBBSDPNFWFOU !NVEEZEJYPO χϑςΟגࣜձࣾ౻େ
!NVEEZEJYPO "NVEEZEJYPO #NVEEZEJYPO ! /PEFKT 1FSM 7JTVBMJ[BUJPO 4UBUJTUJDT 5JNF4FSJFT /FVSBM/FUXPSL
ࠓ͢͜ͱ σʔλՄࢹԽͱ σʔλՄࢹԽͷཧ۶ 8FCͰͷσʔλՄࢹԽͷ͍͍ͱ͜Ζ
%KTͱ ࣭ٙԠ
ࠓͳ͞ͳ͍͜ͱ ͋Μͪ͞Μ͕ϒϩάͰॻ͍ͨ'"2 ౷ܭͷ ਏ͔ͬͨ
ՄࢹԽͱ
σʔλՄࢹԽͱ The main goal of data visualization is its ability
to visualize data, communicating information clearly and effectivelty. Vitaly Friedman $ σʔλՄࢹԽͷతɺσʔλΛՄࢹԽ͠ɺ ใΛ໌͔֬ͭޮతʹ͑Δ͜ͱͰ͋Δ $
ͭ·Γ % ใΛ͑ͦͼΕ͍ͯΔՄࢹԽ % ໌֬Ͱͳ͍ՄࢹԽ % ޮతͰͳ͍ՄࢹԽ ! ্هʮՄࢹԽʯͰͳ͍
ՄࢹԽͷఆٛ ใ͕ࢹ֮తͳදݱʹஔ͖͑ΒΕ͍ͯΔ ใ͕໌֬ʹ͑ΒΕ͍ͯΔ ใ͕ޮతʹ͑ΒΕ͍ͯΔ & ' ( )
ͳͥՄࢹԽ͢ΔͱΑ͍͔ ࢹ֮తͳදݱࢹ֮ه߸ ޙड़ ͷΞφϩδʔ େ͖͞ɺҐஔɺೱ୶ɺ৭ɺ͖ͳͲͷɺܦݧతɾ ೝతͳطଘࣝΛޮతʹར༻ͨ͠ཧղͷଅਐ ! ͷେখɹɹ⾣ߴ͞ͷେখ ͷେখɹɹ⾣໘ੵͷେখ ্ঢɹɹ⾣ӈ্͕Γͷ͖
Լ߱ɹɹ⾣ӈԼ͕Γͷ͖ ಉ͡ΧςΰϦ⾣ಉ͡৭
ೝػೳɾܦݧΛϑϧʹ͏ 4FQBM-FOHU 4FQBM8JEU 1FUBM-FOHU 1FUBM8JEUI 4QFDJFT
TFUPTB TFUPTB TFUPTB TFUPTB TFUPTB WFSTJDPMPS WFSTJDPMPS WFSTJDPMPS WFSTJDPMPS WFSTJDPMPS WJSHJOJDB WJSHJOJDB WJSHJOJDB WJSHJOJDB WJSHJOJDB ΈΜͳ͍͖ͩ͢JSJT
͜ΕΈͯ Θ͔ΔΘ͚Ͱ ͳ͍Ͱ͢ΑͶʁ
౷ܭྔͰදݱ 4FQBM -FOHUI 4FQBM 8JEUI 1FUBM -FOHUI 1FUBM 8JEUI .JO
TU 2V .FEJBO .FBO SE 2V .BY
͜ΕͳΒ ͳΜͱ͔
ਤܗͷܦݧɾೝೳྗΛར༻
ਤܗͷܦݧɾೝೳྗΛར༻ w ͷ෯͕͍ w தԝ্͕ʹภ͍ͬͯΔ w େ͖ͭ͘ͷๆ͕͋Δ w தԝ͕एׯɺ্ ʹภΓ
w ๆ͕ͭɾɾɾʁ w ۉʹ w தԝ͕͓͓Α ͦத৺ w ଞͷଐੑͱൺֱͯ͠ ͷ෯͕খ͍͞ w ֎Ε͕ͪΒ΄Β
ʮೝʯ͕ʮѲʯΛՃ 4FQBM -FOHUI 4FQBM 8JEUI 1FUBM -FOHUI 1FUBM 8JEUI .JO
TU 2V .FEJBO .FBO SE 2V .BY
ͦͷଞʹ ശͻ͛ਤͷΘΓʹ ώετάϥϜ ώετάϥϜΛछผຖʹ දݱ
ॏཁͳ͜ͱ
σʔλՄࢹԽͱ ࠶ܝ The main goal of data visualization is its
ability to visualize data, communicating information clearly and effectivelty. Vitaly Friedman $ σʔλՄࢹԽͷతɺσʔλΛՄࢹԽ͠ɺ ใΛ໌͔֬ͭޮతʹ͑Δ͜ͱͰ͋Δ $
ՄࢹԽͷཧ
σʔλՄࢹԽͷॻ੶
ଞʹͨ͘͞Μ ͋Γ·͕͢ ಡΊ͍ͯ·ͤΜ
(SBNNBSPG(SBQIJDT 4:45"5ͷ։ൃऀ HHQMPUͷ։ൃʹ େ͖ͳӨڹΛ༩ ͑ͨॻ੶ EPSZPLVKJOઌੜ ಡΜͰΔ
σʔλՄࢹԽͷϓϩηε σʔληοτ มԽ ॲཧ ईԽॲཧ
౷ܭॲཧ زԿॲཧ ࠲ඪܥॲཧ ০ॲཧ ՄࢹԽ
ՄࢹԽͰҙࣝ͢Δ֓೦ σʔλ σʔλม ࢹ֮ม ࢹ֮ه߸ ՄࢹԽ σʔληοτ ༷ʑͳϑΟʔϧυͷ͔ΒͳΔ ϨίʔυΛෳؚΉσʔλ܈ มநग़ɾॲཧɾ
ईԽॲɾཧ౷ܭॲཧ͕ࡁΜͩͷ ՄࢹԽରͱ͢ΔϑΟʔϧυΛ ؚΉσʔλɻͻͱͭͻͱ͕ͭҙຯΛ ࣋ͬͨ୯Ґ ྫɿ42-ͷߦ ϑΟʔϧυͷͦͷͷ ϝδϟʔ ΧςΰϦม σΟ ϝϯδϣϯ ɻͻͱͭͻͱ͕ͭࢹ֮ม ʹஔ͞ΕΔ ࢹ֮දݱͻͱͭͻͱͭΛࢦ͢ ҐஔαΠζɺ৭ɺ͖ɺڧ ಁ໌ ɾ࠼ɾ໌ ɺςΫενϟͳͲ ࢹ֮มΛूͤͨ͞ه߸ ԁɺۣܗɺހɺཱମͳͲ σʔληοτͷσʔλʹରԠ͢Δ ه߸ͷू߹ʹΑΔՄࢹԽ ରԠ ରԠ ରԠ
ՄࢹԽͷ֓೦ ཧ۶্ 4FQBM-FOHU I 4FQBM8JEUI 1FUBM-FOHUI 1FUBM8JEUI 4QFDJFT
TFUPTB TFUPTB TFUPTB TFUPTB TFUPTB WFSTJDPMPS WFSTJDPMPS WFSTJDPMPS ย Ֆห छผ TFUPTB ย ൺྫई Ֆห ൺྫई छผ TFUPTB ໊ٛई ย ൺྫई Ґஔ Ֆห ൺྫई Ґஔ छผ ໊ٛई ৭ 4FQBM-FOHUI 1FUBM-FOHUI 4QFDJFT TFUPTB TFUPTB TFUPTB TFUPTB TFUPTB WFSTJDPMPS WFSTJDPMPS WFSTJDPMPS ย Ֆห छผ σʔληοτ σʔληοτ มநग़ σʔλ σʔλม ࢹ֮ม ࢹ֮ه߸ ՄࢹԽ ରԠ ରԠ ରԠ
σʔλมࢹ֮ม ย෯ɿY࠲ඪɺՖห෯ɿZ࠲ඪɺछผɿ৭ ͱͭͷσʔλมɿࢹ֮มΛରԠ
σʔλมࢹ֮ม ࢄਤͩͱͭ͘Β͍ͷมදݱՄೳ ˞ͨͩ͠ɺTFUPTBͷಁ໌͕ߴ͘ࢹೝੑ͕͍ͷͰɾɾɾ
σʔλมࢹ֮ม ࢄਤͩͱͭ͘Β͍ͷมදݱՄೳ ˞ͨͩ͠ɺTFUPTBͷಁ໌͕ߴ͘ࢹೝੑ͕͍ͷͰɾɾɾ σʔλมͷʮʯͱʮ໘ ੵʯΛରԠ͚Δʂʂ ʮܘʯΛରԠ͚ͯ͠· ͏ͱ໘ੵࣗ͞ΕΔʂ
ࢹ֮มʹ͍ͭͯ
ࢹ֮มͷಛੑ બੑɿ৭ɺํͳͲ ࢹ֮ม͕ҟͳΔ߹ɺหผ͕Մ ೳ ؔ࿈ੑɿ৭ɺܗঢ়ͳͲ ࢹ֮ม͕ҟͳΔ߹ɺಉҰάϧʔ ϓͷೝ͕ࣝՄೳ ఆྔੑɿαΠζɺҐஔͳͲ ࢹ֮ม͕ҟͳΔ߹ɺͭͷࠩ Λࣝผ͢Δ͜ͱ͕Մೳ
ॱংੑɿڧ͞ ಁ໌ɺ࠼ ͳͲ ࢹ֮ม͕ҟͳΔ߹ɺॱংͷେ খΛࣝผ͢Δ͜ͱ͕Մೳ
ࢹ֮มͷಛੑ ͜Εܝࡌ͢ΕΑ͔ͬͨͱল͍ͯ͠·͢ %FTJHOJOH%BUB7JTVBMJ[BUJPOT 0`3&*--:
ࢹ֮มͷಛੑ ਪ ͜Εܝࡌ͢ΕΑ͔ͬͨͱল͍ͯ͠·͢ %FTJHOJOH%BUB7JTVBMJ[BUJPOT 0`3&*--: ΧςΰϦΛࣔ͢ͳΒҰ ΧςΰϦΛࣔ͢ͳΒҰ ςΫενϟܥਤ͕ࡶʹ ͳΓ͍͢
ՄࢹԽͷछྨબఆ ͜ΕEPSZPLVKJO͞ΜͷεϥΠυͷํ͕ૉ Β͍͠ͷͰޙड़
8FCͰͷՄࢹԽͷ͍͍ͱ͜Ζ
ར 8FCͰڞ༗͠ɺଟ͘ͷਓʹσʔλʹؚ·Ε Δࣄ࣮Λಧ͚Δ͜ͱ͕Ͱ͖Δ ϚεΩʔϘʔυʹΑΔΠϯλϥΫγϣϯ ͕ར༻Ͱ͖Δ Ξχϝʔγϣϯ͕ར༻Ͱ͖Δ
%KT
%KTͱ 63- IUUQEKTPSH %BUB%SJWFO%PDVNFOUT EBUBʹج͍ͮͯIUNMTWHEPDVNFOUPCKFDUͷ ॲཧΛߦ͏ɺͱ͍͏ίϯηϓτ 47(ૢ࡞ ॲཧ ՄࢹԽϢʔςΟϦςΟ
ͷ૯߹+BWB4DSJQUϥΠϒϥϦ 47(TFMFDUPSBUUSTUZMF ॲཧTDBMFOFTUBSSBZNBUI ՄࢹԽϢʔςΟϦςΟTDBMFBYJTMBZPVU
۩ମྫ <!doctype html>! <html lang="ja">! <head>! <meta charset="utf8">! <title>d3 introduction</title>!
<style>! .axis line, .axis path { fill: none; stroke: grey; }! </style>! </head>! <body>! ! <div>! <p>0th paragraph</p>! <p>1st paragraph</p>! <p>2nd paragraph</p>! </div>! ! <script type="text/javascript" charset="utf8" src="../components/d3/d3.min.js"></script>! <script type="text/javascript" charset="utf8" src="./introduction.js"></script>! </body>! </html>
۩ମྫ ଐੑελΠϧૢ࡞ var paragraphs = d3.select('body').selectAll('p');! paragraphs.style({background: 'cyan'});
۩ମྫ ଐੑελΠϧૢ࡞ var paragraphs = d3.select('body').selectAll('p');! var pdata = [!
{text: "modified: 0th paragraph"},! {text: "modified: 1th paragraph"},! {text: "modified: 2th paragraph"}! ];! paragraphs.data(pdata).text(function(d){ return d.text; }); EBUB ͰσʔλΛඥ͚Δ ͻͱͭͷQʹରͯ͠ɺͻͱͭͷ σʔλ BUUS UFYU TUZMF ͳͲҾʹඥ͚ΒΕͨσʔλΛ औΓɺͦΕʹԠͨ͡ॲཧΛߦ͏
۩ମྫ σʔλʹجͮ͘Ճ var pdata = d3.range(0, 5)! .map(function(id){! return {!
id: id,! text: id + "th paragraph"! };! });! ! paragraphs.data(pdata).enter()! .append('p')! .text(function(d){! return d.text;! }); ૿͑ͨʂ
۩ମྫ σʔλʹجͮ͘Ճ Ͱ͔ͭ͠૿͑ͯͳ͍ʂ σʔλͷ͞ QEBUBMFOHUI ͳ͔ͥʁ طଘͷQ ࠩ⾣͜Ε͕૿͑ͨʂ
σʔλ
var pdata = d3.range(0, 5)! .map(function(id){! return {! id: id,!
text: id + "th paragraph"! };! });! ! paragraphs.data(pdata).enter()! .append('p')! .text(function(d){! return d.text;! }); ۩ମྫ σʔλʹجͮ͘Ճ FOUFS ʹΑͬͯɺσʔλ%0.Λॲཧͷରʹ͢Δ
۩ମྫ σʔλʹجͮ͘আ var lessData = pdata.slice(0, 2);! paragraphs.data(lessData).exit().remove(); ʮEBUB FYJU
ʯ FYJU ʹΑͬͯɺ%0.σʔλΛॲཧͷରʹ͢Δ σʔλ ࠩ⾣͜Ε͕SFNPWF ͨ͠ طଘͷQ
4FMFDUJPO TFMFDU TFMFDU"MM Ͱऔಘͨ͠%0. BQQFOE ʹΑͬͯՃͨ͠%0.Λ TFMFDUJPOͱ͍͍·͢ EBUB ʹΑΓσʔλΛඥ͚Δ͜ͱ͕Ͱ͖ ·͢
BUUS TUZMF UFYU ͳͲͰඥ͚ΒΕ ͨσʔλΛར༻ͯ͠%0.Λॲཧ͢Δ͜ͱ͕ Ͱ͖·͢
%BUB %SJWFO %PDVNFOUT
4FMFDUJPO ඥ͚ͨσʔλ طଘͷ%0. FYJU TFMFDUJPO FOUFS
4FMFDUJPO ྫ͑ ඥ͚ͨσʔλ طଘͷ%0. FYJU TFMFDUJPO FOUFS ଐੑɾελΠϧɾςΩ ετͷมߋͳͲΛߦ͏ ৽نʹ%0.ΛՃ
͠ɺಉ࣌ʹଐੑɾελ ΠϧɾςΩετΛηο τ͢Δ طଘͷ%0.Λআ͠ ͨΓɺಁ໌Λ্͛ͨ ΓΛߦ͏
࡞ͬͯΈΑ͏ʂ ยΛߴ͞ͱ͢Δάϥϑ
༻ҙ͢Δͷ ίʔυIUUQTHJTUHJUIVCDPN NVEEZEJYPO 8FCαʔό IUUQCMPHLBNJQPOFUFOUSZ ͖ͳαʔόΛ্ཱ͍ͪ͛ͯͩ͘͞
IUNM <!doctype html>! <html lang="ja">! <head>! <meta charset="utf8">! <title>d3 scatter
plog</title>! <style>! .axis line, .axis path { fill: none; stroke: grey; }! </style>! </head>! <body>! <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>! <script type="text/javascript" charset="utf8" src="./iris.js"></script>! </body>! </html>
+BWB4DSJQUσʔλͷಡΈࠐΈ var WIDTH = 500, HEIGHT = 500, margin =
50;! var width = WIDTH - 2 * margin, height = HEIGHT - 2 * margin;! var key = 'Sepal.Length';! ! // iris.csv ϑΝΠϧΛಡΈࠐΉ! d3.csv(! "./iris.csv",! // ߦͷܕΛमਖ਼! function(d){! for(var attr in d){! if(! isNaN(Number(d[attr]))){! d[attr] = +d[attr];! }! return d;! }! },! // σʔλΛऔಘ! function(err, data){!
+BWB4DSJQU47(ཁૉͷ࡞ // σʔλΛऔಘ! function(err, data){! ! // svgཁૉΛՃ! var svg
= d3.select('body').append('svg').attr({! width: WIDTH,! height: HEIGHT! });! // ϚʔδϯΛ֬อͯ͠ɺ࣠ͳͲΛදࣔͰ͖ΔΑ͏ʹ͢Δ! var main = svg.append('g').attr({! width: width,! height: height,! transform: "translate("+margin+","+margin+")"! });! ! // ৭ͷई! var color = d3.scale.category10();
+BWB4DSJQUσʔλͷܗͱཧ // σʔλΛೖΕࢠʹ͢Δ! var speciesData = d3.nest()! // छྨ͝ͱʹྨ͢ΔΩʔΛࢦఆ! .key(function(d){
return d.Species;})! // ग़ྗΛΩʔʹϚονͨ͠ྻ͔Βɺฏۉʹมߋ! .rollup(function(values){! return d3.mean(values, function(d){ return d[key]; });! })! // ΛྻͰऔಘ! .entries(data);! ! // छྨͷΩʔҰཡΛऔಘ! var species = speciesData.map(function(d){ return d.key; });! ! // શମͷߴ͞ͷൣғΛऔಘ! var domain = d3.extent(data, function(d){ return d[key]; });!
+BWB4DSJQUई࡞ // y࠲ඪͷईΛऔಘ! var yScale = d3.scale.linear()! // มޙͷൣғ(Ҭ)! .range([0,
height])! // มલͷൣғ(ఆٛҬ)! .domain([0, domain[1]]);! ! // x࠲ඪͷईΛऔಘ! var xScale = d3.scale.ordinal()! // มޙͷൣғ(Ҭ)! .rangeBands([0, width], .2)! // มલͷൣғ(ఆٛҬ)! .domain(species);
+BWB4DSJQUΛඳը // (ͷάϧʔϓ)ཁૉΛ࡞! var bar = main.selectAll('g')! .data(speciesData)! .enter()! .append('g')!
.attr({! transform: function(d){! return "translate("+xScale(d.key)+","+height+")";! }! });! ! // Λඳը! bar.append('rect').attr({! // ۣܗͷߴ͞! height: function(d){ return yScale(d.values); },! // ۣܗͷҐஔ! y: function(d){ return -yScale(d.values); },! // ۣܗͷ෯! width: xScale.rangeBand(),! // ۣܗͷ৭! fill: function(d){ return color(d.key); }! });!
+BWB4DSJQUʹΛඳը // (ͷάϧʔϓ)ཁૉΛ࡞! var bar = main.selectAll('g')! .data(speciesData)! .enter()! .append('g')!
.attr({! transform: function(d){! return "translate("+xScale(d.key)+","+height+")";! }! });! ! // Λඳը (લड़)! // Λඳը! bar.append('text')! // ςΩετྨͨ࣌͠ͷΩʔ! .text(function(d){! return d.values.toFixed(2);! })! .attr({! // ҐஔΛͷ্ʹ! dy: function(d){ return - yScale(d.values); },! dx: xScale.rangeBand() / 2,! fill: 'black'! }).style('text-anchor', 'middle');
+BWB4DSJQU࣠ͷඳը // x࣠ੜͷϢʔςΟϦςΟ! var xAxisSvg = d3.svg.axis().scale(xScale);! // y࣠ੜͷϢʔςΟϦςΟ! var
yAxisSvg = d3.svg.axis().scale(yScale.copy()! .range([height, 0])).orient('left');! // x࣠Λੜ! var xAxis = main.append('g').call(xAxisSvg).attr('class', 'axis')! .attr("transform", "translate(0,"+height+")");! // y࣠Λੜ! var yAxis = main.append('g').call(yAxisSvg).attr('class', 'axis');! ! // y࣠ͷϥϕϧΛهड़! main.append('text').text(key).attr({! transform: "translate(-30,"+(height / 2)+") rotate(-90)"! });
·ͱΊ
σʔλՄࢹԽͱ The main goal of data visualization is its ability
to visualize data, communicating information clearly and effectivelty. Vitaly Friedman $ σʔλՄࢹԽͷతɺσʔλΛՄࢹԽ͠ɺ ใΛ໌͔֬ͭޮతʹ͑Δ͜ͱͰ͋Δ $
ՄࢹԽ͕Ռׂ͖ͨ͢ ࢹ֮දݱͱ͍͏ʮܦݧతʯʮೝతʯʹཧղ Λαϙʔτ͢Δදݱʹม͢Δͷ͕ՄࢹԽ σʔλΛه߸ʹɺσʔληοτΛՄࢹԽʹม ͢Δ ʮΑ͘ΘΕΔՄࢹԽʯͦΕ͚ͩͰཧղ͕ ਐΉՄࢹԽ ཧղ્͕·ΕͨΒɺͦΕ͢ͰʹՄࢹԽ͡Ό ͳ͍ʂ
σʔλՄࢹԽͷϚϯτϥ Overview First, Zoom and Filter, Then Details-on-Demand Overview First,
Zoom and Filter, Then Details-on-Demand Overview First, Zoom and Filter, Then Details-on-Demand Ben Shneiderman $