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
150
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
100
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
93
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
私のClaude Code活用法 (個人開発編) - PHPerKaigi mini #4(2026/08/24)
panda_program
1
130
今さら聞けない .NET CLI
htkym
0
210
メールのエイリアス機能を履き違えない
isshinfunada
0
250
VibeCodingからAgenticWorkflowへ
starfish719
0
770
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
340
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
230
リアルな遅延を測る仕様
kota_yata
1
120
Hono + Inertia + React で LP を構築した話
oukayuka
2
150
ソフトウェアラスタライザ
fadis
1
480
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
250
Flow は今どうなっているか
mizdra
PRO
0
680
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
410
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
250
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
550
Odyssey Design
rkendrick25
PRO
2
770
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
480
Writing Fast Ruby
sferik
630
63k
The Cult of Friendly URLs
andyhume
79
7k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
780
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
480
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Raft: Consensus for Rubyists
vanstee
141
7.6k
Into the Great Unknown - MozCon
thekraken
41
2.7k
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 $