Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
data visualization @html5study
Search
muddydixon
March 28, 2023
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
data visualization @html5study
muddydixon
March 28, 2023
More Decks by muddydixon
See All by muddydixon
企業と勉強会
muddydixon
0
100
basic of data visualization and d3.js demonstration
muddydixon
0
150
study before deeplearning @YAPC2015
muddydixon
0
140
d3.js demonstration
muddydixon
0
110
Time Series Prediction@JubatusCasualTalk2
muddydixon
0
96
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
AIとGame Jamで、ゲームを完成させた話
takahirosaeki
0
120
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
130
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
120
高専キャリア LT 発表内容
crysta1221
6
5.6k
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
130
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
150
業務時間外もAIに働いてもらう話
colorful12
3
10k
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
4
1.1k
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
2
280
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
230
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
300
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
140
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.9k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
520
The Limits of Empathy - UXLibs8
cassininazir
1
650
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.8k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Leo the Paperboy
mayatellez
9
2.3k
So, you think you're a good person
axbom
PRO
2
2.1k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
520
Transcript
σʔλՄࢹԽ ʹ͍ͭͯ )5.-ͱ͔ษڧձ !NVEEZEJYPO
!NVEEZEJYPO "NVEEZEJYPO #NVEEZEJYPO ! /PEFKT 1FSM 7JTVBMJ[BUJPO 5JNF4FSJFT /FVSBM/FUXPSL ࢲJT
ΞδΣϯμ σʔλՄࢹԽͷత σʔλՄࢹԽͱ σʔλՄࢹԽͷཧ۶ 8FCͰͷσʔλՄࢹԽͷ͍͍ͱ͜Ζ %KTͱ
ՄࢹԽͷత
σʔλՄࢹԽͱ The main goal of data visualization is its ability
to visualize data, communicating information clearly and effectivelty. Vitaly Friedman $ σʔλՄࢹԽͷతɺσʔλΛՄࢹԽ͠ɺ ใΛ໌͔֬ͭޮతʹ͑Δ͜ͱͰ͋Δ $
ՄࢹԽͷత ͑ͯͲ͏͢Δʁ
ՄࢹԽͷత ☓ՄࢹԽͷͨΊͷՄࢹԽ ̋తୡͷͨΊͷՄࢹԽ
ՄࢹԽͷత ☓ʮͲ͏ՄࢹԽ͢Δ͔ʁʯ ̋ʮԿΛՄࢹԽ͢Δ͔ʁʯ ˕ʮͳΜͷͨΊʹՄࢹԽ͢Δ͔ʁʯ
ՄࢹԽͷత ϝτϦΫεͷࢹ ྫ ϞχλϦϯάπʔϧ τϨϯυͷѲ ྫ גࣜνϟʔτ ؔੑͷѲ ྫ ιʔγϟϧάϥϑ
ଐੑͷੳ ྫ ސ٬ଐੑͷׂ߹ചΕےδϟϯϧͷׂ߹
ՄࢹԽͷత ࣄ࣮Λൃ۷Ͱ͖ͯͦ͜ͷՄࢹԽ ࣄ࣮Λ׆༻Ͱ͖ͯͦ͜ͷՄࢹԽ ! վળߦҝͷଅਐͷͨΊͷՄࢹԽ Ϗδωεɺ࣏ɺՈܭͳͲ
తΛ્͢ΔՄࢹԽ
μϝͳՄࢹԽ ޮత͡Όͳ͍ ໌֬͡Όͳ͍ ! ˞ʮιΛ͘ʯʮαϯϓϧʹ͕͋Δʯ ͱ͔ͪΐͬͱ͓͍͓͖ͯ·͢
໌֬͡Όͳ͍
໌֬͡Όͳ͍
໌֬͡Όͳ͍
໌֬͡Όͳ͍
໌֬͡Όͳ͍
໌֬͡Όͳ͍
໌֬͡Όͳ͍
ޮత͡Όͳ͍
͍Ζ͍Ζ
ͬͱཉ͍͠ਓͪ͜Βʹ IUUQXUGWJ[OFU
σʔλՄࢹԽͱ
σʔλՄࢹԽͱ The main goal of data visualization is its ability
to visualize data, communicating information clearly and effectivelty. Vitaly Friedman $ σʔλՄࢹԽͷతɺσʔλΛՄࢹԽ͠ɺ ใΛ໌͔֬ͭޮతʹ͑Δ͜ͱͰ͋Δ $
ͭ·Γ % ใΛ͑ͦͼΕ͍ͯΔՄࢹԽ % ໌֬Ͱͳ͍ՄࢹԽ % ޮతͰͳ͍ՄࢹԽ ! ্هʮՄࢹԽʯͰ͋Γ·ͤΜ
ՄࢹԽͷఆٛʹଇΔͱ ใ͕ࢹ֮తͳදݱʹஔ͖͑ΒΕ͍ͯΔ ใ͕໌֬ʹ͑ΒΕ͍ͯΔ ใ͕ޮతʹ͑ΒΕ͍ͯΔ & ' ( )
ͳͥՄࢹԽ͢ΔͱΑ͍͔
ͳͥՄࢹԽ͢ΔͱΑ͍͔
ͳͥՄࢹԽ͢ΔͱΑ͍͔
ͳͥՄࢹԽ͢ΔͱΑ͍͔
ͳͥՄࢹԽ͢ΔͱΑ͍͔
ͳͥՄࢹԽ͢ΔͱΑ͍͔
ͳͥՄࢹԽ͢ΔͱΑ͍͔ ͷେখɹɹ▶ߴ͞ͷେখ ͷେখɹɹ▶໘ੵͷେখ ্ঢɹɹ▶ӈ্͕Γͷ͖ Լ߱ɹɹ▶ӈԼ͕Γͷ͖ ಉ͡ΧςΰϦ▶ಉ͡৭ ؔੑ
▶ີू
ͳͥՄࢹԽ͢ΔͱΑ͍͔ ܦݧతɾೝతͳ طଘࣝΛޮతʹ ར༻ͨ͠ཧղͷଅਐ & ' ( )
ͳͥՄࢹԽ͢ΔͱΑ͍͔ ͙͔͢ΔJTਖ਼ٛ & ' ( )
ೝػೳɾܦݧΛϑϧʹ͏ 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
ͦͷଞʹ ശͻ͛ਤͷΘΓʹ ώετάϥϜ ώετάϥϜΛछผຖʹ දݱ
ՄࢹԽͷཧ
σʔληοτͱՄࢹԽ ΨΫย෯ Ֆห෯ 4QFDJFT TFUPTB
TFUPTB TFUPTB TFUPTB TFUPTB WFSTJDPMPS WFSTJDPMPS WFSTJDPMPS WFSTJDPMPS WFSTJDPMPS WJSHJOJDB WJSHJOJDB WJSHJOJDB WJSHJOJDB WJSHJOJDB
ՄࢹԽͰҙࣝ͢Δ֓೦ σʔλ σʔλม ࢹ֮ม ࢹ֮ه߸ ՄࢹԽ σʔληοτ ༷ʑͳϑΟʔϧυͷ͔ΒͳΔ ϨίʔυΛෳؚΉσʔλ܈ มநग़ɾॲཧɾ
ईԽॲɾཧ౷ܭॲཧ͕ࡁΜͩͷ ՄࢹԽରͱ͢ΔϑΟʔϧυΛ ؚΉσʔλɻͻͱͭͻͱ͕ͭҙຯΛ ࣋ͬͨ୯Ґ ྫɿ42-ͷߦ ϑΟʔϧυͷͦͷͷ ϝδϟʔ ΧςΰϦม σΟ ϝϯδϣϯ ɻͻͱͭͻͱ͕ͭࢹ֮ม ʹஔ͞ΕΔ ࢹ֮දݱͻͱͭͻͱͭΛࢦ͢ ҐஔαΠζɺ৭ɺ͖ɺڧ ಁ໌ ɾ࠼ɾ໌ ɺςΫενϟͳͲ ࢹ֮มΛूͤͨ͞ه߸ ԁɺۣܗɺހɺཱମͳͲ σʔληοτͷσʔλʹରԠ͢Δ ه߸ͷू߹ʹΑΔՄࢹԽ ରԠ ରԠ ରԠ
σʔληοτͱՄࢹԽ ΨΫย෯ Ֆห෯ 4QFDJFT TFUPTB
TFUPTB TFUPTB TFUPTB TFUPTB WFSTJDPMPS WFSTJDPMPS WFSTJDPMPS WFSTJDPMPS WFSTJDPMPS WJSHJOJDB WJSHJOJDB WJSHJOJDB WJSHJOJDB WJSHJOJDB σʔλ ࢹ֮ه߸
σʔληοτͱՄࢹԽ ΨΫย෯ Ֆห෯ 4QFDJFT TFUPTB
TFUPTB TFUPTB TFUPTB TFUPTB WFSTJDPMPS WFSTJDPMPS WFSTJDPMPS WFSTJDPMPS WFSTJDPMPS WJSHJOJDB WJSHJOJDB WJSHJOJDB WJSHJOJDB WJSHJOJDB σʔλม : ࢹ֮ม 9 ৭
ՄࢹԽͷ֓೦ ཧ۶্ 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&*--: ΧςΰϦΛࣔ͢ͳΒҰ ΧςΰϦΛࣔ͢ͳΒҰ ςΫενϟܥਤ͕ࡶʹ ͳΓ͍͢
8FCͰͷՄࢹԽͷ͍͍ͱ͜Ζ
ར 8FCͰڞ༗͠ɺଟ͘ͷਓʹσʔλʹؚ·Ε Δࣄ࣮Λಧ͚Δ͜ͱ͕Ͱ͖Δ ੫ۚͲ͜ʹߦͬͨʁ ϚεΩʔϘʔυʹΑΔΠϯλϥΫγϣ ϯ͕ར༻Ͱ͖Δ Ξχϝʔγϣϯ͕ར༻Ͱ͖Δ ࣌ؒ࣠Λ࣮ࡍͷ࣌ؒʹׂΓͯΔ͜ͱͰɺද ݱͰ͖ΔσʔλมΛͭ૿͢͜ͱ͕Ͱ͖Δ
8FCͰͷڞ༗ IUUQTQFOEJOHKQ
ΠϯλϥΫγϣϯ IUUQTRVBSFHJUIVCJPDSPTTpMUFS IUUQXXXDTVNEFEV dCFEFSTPOQBQFSTJOEFYIUNM
Ξχϝʔγϣϯ IUUQTXXXZPVUVCFDPNXBUDI WF[7LBI3'UNT
47(ʹ͍ͭͯ
47(ͱ 4DBMBCMF7FDUPS(SBQIJDT େ͖ͯ͘͠៉ྷ 9.-%PDVNFOU %0. *OTQFDUPSͰݟ͍͢
47(Ͱ͑Δλά TWH H EFGT TZNCPM VTF QBUI MJOF SFDU DJSDMF
FMMJQTF QPMZMJOF QPMZHPO ! ͋ͱϑΟϧλʔपΓ͕ͨ͘͞Μ͋Γ·͕͢ ΄ͱΜͲ͏ػձ͋Γ·ͤΜ
47(͜Μͳײ͡ <svg width="400" height="300">! <g transform="translate(50,50)">! <circle r="5" cx="128.571" cy="111.733"
fill="blue"></circle>! <circle r="5" cx="21.428" cy="121.600" fill="red"></circle>! <circle r="5" cx="77.142" cy="138.4" fill="blue"></circle>! <circle r="5" cx="111.428" cy="135.2" fill="blue"></circle>! <circle r="5" cx="300" cy="0" fill="red"></circle>! <circle r="5" cx="0" cy="73.066" fill="red"></circle>! <circle r="5" cx="244.285" cy="192.266" fill="blue"></circle>! <circle r="5" cx="270" cy="200" fill="red"></circle>! <circle r="5" cx="51.428" cy="173.333" fill="red"></circle>! </g>! </svg>
47(ʹ͍ͭͯͪ͜ΒΛ IUUQXXXTMJEFTIBSFOFULBEPQQFJOMJOFTWH IUUQXXXTMJEFTIBSFOFUTTVTFSEDTWH NBOJBYDTTOJUFBGUFSEBSLTWHNBUTVEB
%KT
%KTͱ 63- IUUQEKTPSH %BUB%SJWFO%PDVNFOUT EBUBʹج͍ͮͯIUNMTWHEPDVNFOU PCKFDUͷॲཧΛߦ͏ɺͱ͍͏ίϯηϓτ 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.Λআ͠ ͨΓɺಁ໌Λ্͛ͨ ΓΛߦ͏
࡞͢Δͱ͖ͷίπ 47(جຊ ޙʹՃͨ͠ͷ্͕ʹදࣔ͞ΕΔ -BZFS Hλά Λ੍ͬͯޚ͢Δͱ͏·͘ ॻ͚·͢ USBOTGPSNଐੑΛ͏·͘͏ͱָͰ͢ UFYUपΓ͍͠Ͱ͢ LBEPQQF͞Μ
ݴͬͯ·͢
None
<svg width="500" height="500">! <g width="480" height="480" transform="translate(10,10)">! <g class="background-layer">! <g
class="ruler">! <line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="0" y2="0"></line>! <line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="48" y2="48"></line>! <line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="96" y2="96"></line>! <line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="144" y2="144"></line>! <line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="192" y2="192"></line>! <line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="240" y2="240"></line>! <line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="288" y2="288"></line>! <line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="336" y2="336"></line>! <line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="384" y2="384"></line>! <line width="2" stroke="grey" fill="none" x1="0" x2="480" y1="432" y2="432"></line>! </g>! </g>! <g class="chart-layer">! <g><rect x="10" width="100" height="22" y="458" fill="#1f77b4"></rect></g>! <g><rect x="170" width="100" height="209" y="271" fill="#ff7f0e"></rect></g>! <g><rect x="330" width="100" height="478" y="2" fill="#2ca02c"></rect></g>! </g>! <g class="info-layer"></g>! </g>! </svg>
·ͱΊ
σʔλՄࢹԽͱ 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 $
͕࣌ؒ͋ͬͨΒ
࡞ͬͯΈΑ͏ʂ ยΛߴ͞ͱ͢Δάϥϑ
༻ҙ͢Δͷ ίʔυ 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)"! });
՝ άϥϑ ંઢάϥϑ ࢄਤ ΠϯλϥΫγϣϯ Ξχϝʔγϣϯ δΦϚοϐϯά