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
第85回Tokyo.R初心者セッション:データ可視化
Search
kilometer
May 23, 2020
Technology
630
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第85回Tokyo.R初心者セッション:データ可視化
第85回Tokyo.R初心者セッションのトークスライドです。
kilometer
May 23, 2020
More Decks by kilometer
See All by kilometer
TokyoR#111_ANOVA
kilometer
2
990
TokyoR109.pdf
kilometer
1
580
TokyoR#108_NestedDataHandling
kilometer
0
930
TokyoR#107_R_GeoData
kilometer
0
520
SappoRo.R_roundrobin
kilometer
0
200
TokyoR#104_DataProcessing
kilometer
1
790
TokyoR#103_DataProcessing
kilometer
0
1k
TokyoR#102_RMarkdown
kilometer
1
730
TokyoR#101_RegressionAnalysis
kilometer
0
570
Other Decks in Technology
See All in Technology
ヘルスケア領域における AI 活用と その安全性担保のための取り組み (Leveraging AI in Healthcare and Our Efforts to Ensure Its Safety) - Google I/O Extended Tokyo 2026, July 11, 2026
zettaittenani
0
420
2年前に削除したPHPクラスが、 ある日突然決済をエラーにした
ykagano
1
270
Kaggleで成長するために意識したこと
prgckwb
2
410
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
14
2.1k
凡エンジニアがこの先生きのこるためには。〜TypeScript完全に理解したい〜
alchemy1115
2
310
あなたの『Site』はどこですか? — xREという考え方
miyamu
0
1.2k
実践!既存 Project への AI-Driven Development 適用〜 一ヶ月で Project 唯一のフロントエンドエンジニアを作り出せ〜
lycorptech_jp
PRO
0
190
Alphaモジュール使っていいのかい!?いけないのかい!?どっちなんだいっ!?
watany
1
270
世界、断片、モデル。そして理解
ardbeg1958
1
130
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
190
Genie Ontologyは銀の弾丸かを考える / Is Genie Ontology a Silver Bullet?
nttcom
0
390
ボーイスカウトルールでメモリやスキルを改善しよう
azukiazusa1
4
1.4k
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
630
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
340
Crafting Experiences
bethany
1
220
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
490
Making the Leap to Tech Lead
cromwellryan
135
10k
Odyssey Design
rkendrick25
PRO
2
730
Into the Great Unknown - MozCon
thekraken
41
2.6k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
240
Rails Girls Zürich Keynote
gr2m
96
14k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
63
55k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
180
Transcript
BeginneR Session #85 Tokyo.R 2020.05.23 online @kilometer00 - Data visualization
-
Who!? 誰だ?
Who!? 名前: 三村 @kilometer 職業: ポスドク (こうがくはくし) 専⾨: ⾏動神経科学(霊⻑類) 脳イメージング
医療システム⼯学 R歴: ~ 10年ぐらい 流⾏: Craft beer
BeginneR Session - Data visualization -
Wide Long Nested input output pivot_longer pivot_wider group_nest unnest ggplot
visualization map output ggsave
Wide Long Nested input output pivot_longer pivot_wider group_nest unnest ggplot
visualization map output ggsave
٬ظ٭ذ⺎釱כַֹ◄ ٬HHQMPUס㓹灄
ظ٭ذ 䗯㕔 㲔㏇ 鈝峮ס僗扛מ 㰆㏇יַסאסס 㲔㏇瑞⺘ג辐霄 瑞⺘ 鈝㴔 鈝峮 湳釶
ظ٭ذ 䗯㕔 㲔㏇ 鈝峮ס僗扛מ 㰆㏇יַסאסס 㲔㏇瑞⺘ג辐霄 䗯㕔סֹה䙫䓙⚥鷼٬ 鉮ꃿ٬⭚杼מ鸵ג ⫋⮵榫⺎耆םס 瑞⺘
鈝㴔 鈝峮 湳釶
&ODPEF "QQMF 3FBM "QQMF *OGPSNBUJPO %FDPEF
%JWFSHFODF 3FBM *OGP %BUB "QQMF &ODPEJOH
-PTT͛ Symbol grounding problem %JWFSHFODF 3FBM *OGP %BUB "QQMF &ODPEJOH
"QQMF &ODPEF 'SVJU 3FE JNBHF 3FBM *OGPSNBUJPO
"QQMF &ODPEF 'SVJU 3FE JNBHF 3FBM *OGPSNBUJPO DIBOOFM
䗯㕔 㲔㏇ ♞鐄 ظ٭ذ زٔؾٜכ瑞⺘ס鹟䥃 瑞⺘
䗯㕔 㲔㏇ ♞鐄 ظ٭ذ ظ٭ذ ظ٭ذ 鉮ꃿ ⫝⥼ ⫝⥼
䗯㕔 㲔㏇ ♞鐄 ظ٭ذ ظ٭ذ ظ٭ذ 鉮ꃿ ⫝⥼
䗯㕔 㲔㏇ ♞鐄 ظ٭ذ ظ٭ذ 鉮ꃿ 鐐갭 䙫䓙婊㲊
⫝⥼ (mapping) !: # → % # % ֵ䗯㕔ס⺬ס釐碛յ⮯ס䗯㕔ס⺬ס גדחס釐碛מ㵚䑴טׄوٞجت
⫝⥼ (mapping) ! " #: % → ' % '
# ! = " ꞊丗 ⊂ ⫝⥼
! " #$ %$ #& %& ! " %$ %&
#$ #& ⺎釱 ⊂ ⫝⥼ mapping
! " #$ %$ #& %& ! " %$ %&
#$ #& ⺎釱 ⊂ ⫝⥼ mapping x axis, y axis, color, fill, shape, linetype, alpha… aesthetic channels
"QQMF &ODPEF 'SVJU 3FE JNBHF 3FBM *OGPSNBUJPO DIBOOFM
Data visualization with ggplot2 ! " #$ %$ #& %&
! " %$ %& #$ #& mapping x axis, y axis, color, fill, shape, linetype, alpha… aesthetic channels data
Data visualization with ggplot2 # install.packages("tidyverse") library(tidyverse) dat <- data.frame(a
= 1:3, b = 8:10) Attach package Simple example > dat a b 1 1 8 2 2 9 3 3 10
Data visualization with ggplot2 dat <- data.frame(a = 1:3, b
= 8:10) ggplot(data = dat)+ geom_point(mapping = aes(x = a, y = b))
Data visualization with ggplot2 dat <- data.frame(a = 1:3, b
= 8:10) ggplot(data = dat)+ geom_point(mapping = aes(x = a, y = b)) ! " #$ %$ #& %& ! " %$ %& #$ #& mapping x axis, y axis, color, fill, shape, linetype, alpha… aesthetic channels data
Data visualization with ggplot2 dat <- data.frame(a = 1:3, b
= 8:10) ggplot(data = dat)+ geom_point(mapping = aes(x = a, y = b)) ! " #$ %$ #& %& ! " %$ %& #$ #& mapping x axis, y axis, color, fill, shape, linetype, alpha… aesthetic channels data
Data visualization with ggplot2 dat <- data.frame(a = 1:3, b
= 8:10) ggplot(data = dat)+ geom_point(mapping = aes(x = a, y = b))+ geom_path(mapping = aes(x = a, y = b))
Data visualization with ggplot2 dat <- data.frame(a = 1:3, b
= 8:10) ggplot(data = dat, mapping = aes(x = a, y = b))+ geom_point()+ geom_path()
Data visualization with ggplot2 dat <- data.frame(a = 1:3, b
= 8:10) ggplot(data = dat, mapping = aes(x = a, y = b))+ geom_point()+ geom_path()
Data visualization with ggplot2 dat <- data.frame(a = 1:3, b
= 8:10) ggplot(data = dat)+ aes(x = a, y = b)+ geom_point()+ geom_path()
Data visualization with ggplot2 dat <- data.frame(a = 1:3, b
= 8:10) g <- ggplot(data = dat)+ aes(x = a, y = b) g+ geom_point()+ geom_path()
Data visualization with ggplot2 dat <- data.frame(a = 1:3, b
= 8:10) g <- ggplot(data = dat)+ aes(x = a, y = b)+ geom_point() g+ geom_path()
Data visualization with ggplot2 dat <- data.frame(x = 1:3, y1
= 8:10, y2 = 6:8) Simple example #2 > dat x y1 y2 1 1 8 6 2 2 9 7 3 3 10 8
Data visualization with ggplot2 dat <- data.frame(x = 1:3, y1
= 8:10, y2 = 6:8) Simple example #2 > dat x y1 y2 1 1 8 6 2 2 9 7 3 3 10 8 mapping
Data visualization with ggplot2 dat <- data.frame(x = 1:3, y1
= 8:10, y2 = 6:8) Simple example #2 > dat x y1 y2 1 1 8 6 2 2 9 7 3 3 10 8 mapping y x aes(x = x, y = ???)
Data visualization with ggplot2 dat <- data.frame(x = 1:3, y1
= 8:10, y2 = 6:8) Simple example #2 > dat x y1 y2 1 1 8 6 2 2 9 7 3 3 10 8 aes(x = x, y = y) x key y 1 1 y1 8 2 1 y2 6 3 2 y1 9 4 2 y2 7 5 3 y1 10 6 3 y2 8
Data visualization with ggplot2 dat <- data.frame(x = 1:3, y1
= 8:10, y2 = 6:8) Simple example #2 > dat x y1 y2 1 1 8 6 2 2 9 7 3 3 10 8 > dat_long x key y 1 1 y1 8 2 1 y2 6 3 2 y1 9 4 2 y2 7 5 3 y1 10 6 3 y2 8 Wide Long Long format Wide format
Data visualization with ggplot2 dat <- data.frame(x = 1:3, y1
= 8:10, y2 = 6:8) Simple example #2 dat_long <- pivot_longer(data = dat, cols = starts_with("y"), names_to = "key", values_to = "y") > dat_long x key y 1 1 y1 8 2 1 y2 6 3 2 y1 9 4 2 y2 7 5 3 y1 10 6 3 y2 8
Data visualization with ggplot2 dat <- data.frame(x = 1:3, y1
= 8:10, y2 = 6:8) Simple example #2 dat_long <- pivot_longer(data = dat, cols = starts_with("y"), names_to = "key", values_to = "y") > dat_long x key y 1 1 y1 8 2 1 y2 6 3 2 y1 9 4 2 y2 7 5 3 y1 10 6 3 y2 8 ggplot(data = dat_long)+ aes(x = x, y = y, color = key)+ geom_point()+ geom_path()
Data visualization with ggplot2 dat <- data.frame(x = 1:3, y1
= 8:10, y2 = 6:8) Simple example #2 dat_long <- pivot_longer(data = dat, cols = starts_with("y"), names_to = "key", values_to = "y") > dat_long x key y 1 1 y1 8 2 1 y2 6 3 2 y1 9 4 2 y2 7 5 3 y1 10 6 3 y2 8 ggplot(data = dat_long)+ aes(x = x, y = y, color = key)+ geom_point()+ geom_path()
Data visualization with ggplot2 > anscombe x1 x2 x3 x4
y1 y2 y3 y4 1 10 10 10 8 8.04 9.14 7.46 6.58 2 8 8 8 8 6.95 8.14 6.77 5.76 3 13 13 13 8 7.58 8.74 12.74 7.71 4 9 9 9 8 8.81 8.77 7.11 8.84 5 11 11 11 8 8.33 9.26 7.81 8.47 6 14 14 14 8 9.96 8.10 8.84 7.04 7 6 6 6 8 7.24 6.13 6.08 5.25 8 4 4 4 19 4.26 3.10 5.39 12.50 9 12 12 12 8 10.84 9.13 8.15 5.56 10 7 7 7 8 4.82 7.26 6.42 7.91 11 5 5 5 8 5.68 4.74 5.73 6.89
Data visualization with ggplot2 > anscombe x1 x2 x3 x4
y1 y2 y3 y4 1 10 10 10 8 8.04 9.14 7.46 6.58 2 8 8 8 8 6.95 8.14 6.77 5.76 3 13 13 13 8 7.58 8.74 12.74 7.71 4 9 9 9 8 8.81 8.77 7.11 8.84 5 11 11 11 8 8.33 9.26 7.81 8.47 6 14 14 14 8 9.96 8.10 8.84 7.04 7 6 6 6 8 7.24 6.13 6.08 5.25 8 4 4 4 19 4.26 3.10 5.39 12.50 9 12 12 12 8 10.84 9.13 8.15 5.56 10 7 7 7 8 4.82 7.26 6.42 7.91 11 5 5 5 8 5.68 4.74 5.73 6.89
Data visualization with ggplot2 > anscombe x1 x2 x3 x4
y1 y2 y3 y4 1 10 10 10 8 8.04 9.14 7.46 6.58 2 8 8 8 8 6.95 8.14 6.77 5.76 3 13 13 13 8 7.58 8.74 12.74 7.71 4 9 9 9 8 8.81 8.77 7.11 8.84 5 11 11 11 8 8.33 9.26 7.81 8.47 6 14 14 14 8 9.96 8.10 8.84 7.04 7 6 6 6 8 7.24 6.13 6.08 5.25 8 4 4 4 19 4.26 3.10 5.39 12.50 9 12 12 12 8 10.84 9.13 8.15 5.56 10 7 7 7 8 4.82 7.26 6.42 7.91 11 5 5 5 8 5.68 4.74 5.73 6.89 a > anscombe_long # A tibble: 44 x 3 key x y <chr> <dbl> <dbl> 1 1 10 8.04 2 2 10 9.14 3 3 10 7.46 4 4 8 6.58 5 1 8 6.95 6 2 8 8.14 7 3 8 6.77 8 4 8 5.76
Data visualization with ggplot2 > anscombe x1 x2 x3 x4
y1 y2 y3 y4 1 10 10 10 8 8.04 9.14 7.46 6.58 2 8 8 8 8 6.95 8.14 6.77 5.76 3 13 13 13 8 7.58 8.74 12.74 7.71 anscombe_long <- pivot_longer(data = anscombe, cols = everything(), names_pattern = "(.)(.)", names_to = c(".value", "key"))
> anscombe x1 x2 x3 x4 y1 y2 y3 y4
1 10 10 10 8 8.04 9.14 7.46 6.58 2 8 8 8 8 6.95 8.14 6.77 5.76 3 13 13 13 8 7.58 8.74 12.74 7.71 Data visualization with ggplot2 anscombe_long <- pivot_longer(data = anscombe, cols = everything(), names_pattern = "(.)(.)", names_to = c(".value", "key"))
Data visualization with ggplot2 anscombe_long <- pivot_longer(data = anscombe, cols
= everything(), names_pattern = "(.)(.)", names_to = c(".value", "key")) > anscombe_long # A tibble: 44 x 3 key x y <chr> <dbl> <dbl> 1 1 10 8.04 2 2 10 9.14 3 3 10 7.46 4 4 8 6.58 5 1 8 6.95 6 2 8 8.14 7 3 8 6.77 8 4 8 5.76
Data visualization with ggplot2 anscombe_long <- pivot_longer(data = anscombe, cols
= everything(), names_pattern = "(.)(.)", names_to = c(".value", "key")) > anscombe_long # A tibble: 44 x 3 key x y <chr> <dbl> <dbl> 1 1 10 8.04 2 2 10 9.14 3 3 10 7.46 4 4 8 6.58 5 1 8 6.95 6 2 8 8.14 7 3 8 6.77 8 4 8 5.76 g_anscomb <- ggplot(data = anscombe_long)+ aes(x = x, y = y, color = key)+ geom_point()
Data visualization with ggplot2 anscombe_long <- pivot_longer(data = anscombe, cols
= everything(), names_pattern = "(.)(.)", names_to = c(".value", "key")) g_anscomb <- ggplot(data = anscombe_long)+ aes(x = x, y = y, color = key)+ geom_point() > anscombe_long # A tibble: 44 x 3 key x y <chr> <dbl> <dbl> 1 1 10 8.04 2 2 10 9.14 3 3 10 7.46 4 4 8 6.58 5 1 8 6.95 6 2 8 8.14 7 3 8 6.77 8 4 8 5.76
g_anscomb+ facet_wrap(~key) Data visualization with ggplot2 g_anscomb
g_anscomb+ facet_wrap(~key)+ theme(legend.position = "none") Data visualization with ggplot2
Summary…
䗯㕔 㲔㏇ ♞鐄 ظ٭ذ ظ٭ذ 鉮ꃿ 鐐갭 䙫䓙婊㲊
ظ٭ذ 䗯㕔 㲔㏇ 鈝峮ס僗扛מ 㰆㏇יַסאסס 㲔㏇瑞⺘ג辐霄 䗯㕔סֹה䙫䓙⚥鷼٬ 鉮ꃿ٬⭚杼מ鸵ג ⫋⮵榫⺎耆םס 瑞⺘
鈝㴔 鈝峮 湳釶
"QQMF &ODPEF 'SVJU 3FE JNBHF 3FBM *OGPSNBUJPO DIBOOFM
-PTT͛ Symbol grounding problem %JWFSHFODF 3FBM *OGP %BUB "QQMF &ODPEJOH
⫝⥼ (mapping) !: # → % # % ֵ䗯㕔ס⺬ס釐碛յ⮯ס䗯㕔ס⺬ס גדחס釐碛מ㵚䑴טׄوٞجت
! " #$ %$ #& %& ! " %$ %&
#$ #& ⺎釱 ⊂ ⫝⥼ mapping x axis, y axis, color, fill, shape, linetype, alpha… aesthetic channels
Data visualization with ggplot2 dat <- data.frame(a = 1:3, b
= 8:10) ggplot(data = dat)+ geom_point(mapping = aes(x = a, y = b)) ! " #$ %$ #& %& ! " %$ %& #$ #& mapping x axis, y axis, color, fill, shape, linetype, alpha… aesthetic channels data
Data visualization with ggplot2 dat <- data.frame(a = 1:3, b
= 8:10) ggplot(data = dat)+ aes(x = a, y = b)+ geom_point()+ geom_path()
Data visualization with ggplot2 dat <- data.frame(x = 1:3, y1
= 8:10, y2 = 6:8) Simple example #2 > dat x y1 y2 1 1 8 6 2 2 9 7 3 3 10 8 > dat_long x key y 1 1 y1 8 2 1 y2 6 3 2 y1 9 4 2 y2 7 5 3 y1 10 6 3 y2 8 Wide Long Long format Wide format
Data visualization with ggplot2 dat <- data.frame(x = 1:3, y1
= 8:10, y2 = 6:8) Simple example #2 dat_long <- pivot_longer(data = dat, cols = starts_with("y"), names_to = "key", values_to = "y") > dat_long x key y 1 1 y1 8 2 1 y2 6 3 2 y1 9 4 2 y2 7 5 3 y1 10 6 3 y2 8 ggplot(data = dat_long)+ aes(x = x, y = y, color = key)+ geom_point()+ geom_path()
Wide Long Nested input output pivot_longer pivot_wider group_nest unnest ggplot
visualization map output ggsave
enjoy!