Slide 1

Slide 1 text

BeginneR Session #85 Tokyo.R 2020.05.23 online @kilometer00 - Data visualization -

Slide 2

Slide 2 text

Who!? 誰だ?

Slide 3

Slide 3 text

Who!? 名前: 三村 @kilometer 職業: ポスドク (こうがくはくし) 専⾨: ⾏動神経科学(霊⻑類) 脳イメージング 医療システム⼯学 R歴: ~ 10年ぐらい 流⾏: Craft beer

Slide 4

Slide 4 text

BeginneR Session - Data visualization -

Slide 5

Slide 5 text

Wide Long Nested input output pivot_longer pivot_wider group_nest unnest ggplot visualization map output ggsave

Slide 6

Slide 6 text

Wide Long Nested input output pivot_longer pivot_wider group_nest unnest ggplot visualization map output ggsave

Slide 7

Slide 7 text

٬ظ٭ذ؅⺎釱⴫׌׾כַֹ◄ ٬HHQMPUס㓹灄

Slide 8

Slide 8 text

ظ٭ذ 䗯㕔 㲔㏇ 鈝峮ס僗扛מ׻׼׍ 㰆㏇׊יַ׾׵סאס׵ס 㲔㏇؅瑞⺘⴫׊ג辐霄 瑞⺘⴫ 鈝㴔 鈝峮 湳釶

Slide 9

Slide 9 text

ظ٭ذ 䗯㕔 㲔㏇ 鈝峮ס僗扛מ׻׼׍ 㰆㏇׊יַ׾׵סאס׵ס 㲔㏇؅瑞⺘⴫׊ג辐霄 䗯㕔סֹה䙫䓙⚥鷼٬ 鉮ꃿ٬⭚杼מ鸵׊ג ⫋⮵榫⺎耆ם׵ס 瑞⺘⴫ 鈝㴔 鈝峮 湳釶

Slide 10

Slide 10 text

&ODPEF "QQMF 3FBM "QQMF *OGPSNBUJPO %FDPEF

Slide 11

Slide 11 text

%JWFSHFODF 3FBM *OGP %BUB "QQMF &ODPEJOH

Slide 12

Slide 12 text

-PTT͛ Symbol grounding problem %JWFSHFODF 3FBM *OGP %BUB "QQMF &ODPEJOH

Slide 13

Slide 13 text

"QQMF &ODPEF 'SVJU 3FE JNBHF 3FBM *OGPSNBUJPO

Slide 14

Slide 14 text

"QQMF &ODPEF 'SVJU 3FE JNBHF 3FBM *OGPSNBUJPO DIBOOFM

Slide 15

Slide 15 text

䗯㕔 㲔㏇ ♞鐄 ظ٭ذ زٔؾٜכ瑞⺘ס鹟䥃 瑞⺘⴫

Slide 16

Slide 16 text

䗯㕔 㲔㏇ ♞鐄 ظ٭ذ ظ٭ذ ظ٭ذ 鉮ꃿ ⫝⥼ ⫝⥼

Slide 17

Slide 17 text

䗯㕔 㲔㏇ ♞鐄 ظ٭ذ ظ٭ذ ظ٭ذ 鉮ꃿ ⫝⥼

Slide 18

Slide 18 text

䗯㕔 㲔㏇ ♞鐄 ظ٭ذ ظ٭ذ 鉮ꃿ 鐐갭 䙫䓙婊㲊

Slide 19

Slide 19 text

⫝⥼ (mapping) !: # → % # % ֵ׾䗯㕔ס꥗⺬ס釐碛؅յ⮯ס䗯㕔ס꥗⺬ס גדחס釐碛מ㵚䑴טׄ׾وٞجت

Slide 20

Slide 20 text

⫝⥼ (mapping) ! " #: % → ' % ' # ! = " ꞊丗 ⊂ ⫝⥼

Slide 21

Slide 21 text

! " #$ %$ #& %& ! " %$ %& #$ #& ⺎釱⴫ ⊂ ⫝⥼ mapping

Slide 22

Slide 22 text

! " #$ %$ #& %& ! " %$ %& #$ #& ⺎釱⴫ ⊂ ⫝⥼ mapping x axis, y axis, color, fill, shape, linetype, alpha… aesthetic channels

Slide 23

Slide 23 text

"QQMF &ODPEF 'SVJU 3FE JNBHF 3FBM *OGPSNBUJPO DIBOOFM

Slide 24

Slide 24 text

Data visualization with ggplot2 ! " #$ %$ #& %& ! " %$ %& #$ #& mapping x axis, y axis, color, fill, shape, linetype, alpha… aesthetic channels data

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

Data visualization with ggplot2 dat <- data.frame(a = 1:3, b = 8:10) ggplot(data = dat)+ geom_point(mapping = aes(x = a, y = b))

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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))

Slide 30

Slide 30 text

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()

Slide 31

Slide 31 text

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()

Slide 32

Slide 32 text

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()

Slide 33

Slide 33 text

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()

Slide 34

Slide 34 text

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()

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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 = ???)

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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()

Slide 42

Slide 42 text

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()

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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 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

Slide 46

Slide 46 text

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"))

Slide 47

Slide 47 text

> 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"))

Slide 48

Slide 48 text

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 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

Slide 49

Slide 49 text

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 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()

Slide 50

Slide 50 text

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 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

Slide 51

Slide 51 text

g_anscomb+ facet_wrap(~key) Data visualization with ggplot2 g_anscomb

Slide 52

Slide 52 text

g_anscomb+ facet_wrap(~key)+ theme(legend.position = "none") Data visualization with ggplot2

Slide 53

Slide 53 text

Summary…

Slide 54

Slide 54 text

䗯㕔 㲔㏇ ♞鐄 ظ٭ذ ظ٭ذ 鉮ꃿ 鐐갭 䙫䓙婊㲊

Slide 55

Slide 55 text

ظ٭ذ 䗯㕔 㲔㏇ 鈝峮ס僗扛מ׻׼׍ 㰆㏇׊יַ׾׵סאס׵ס 㲔㏇؅瑞⺘⴫׊ג辐霄 䗯㕔סֹה䙫䓙⚥鷼٬ 鉮ꃿ٬⭚杼מ鸵׊ג ⫋⮵榫⺎耆ם׵ס 瑞⺘⴫ 鈝㴔 鈝峮 湳釶

Slide 56

Slide 56 text

"QQMF &ODPEF 'SVJU 3FE JNBHF 3FBM *OGPSNBUJPO DIBOOFM

Slide 57

Slide 57 text

-PTT͛ Symbol grounding problem %JWFSHFODF 3FBM *OGP %BUB "QQMF &ODPEJOH

Slide 58

Slide 58 text

⫝⥼ (mapping) !: # → % # % ֵ׾䗯㕔ס꥗⺬ס釐碛؅յ⮯ס䗯㕔ס꥗⺬ס גדחס釐碛מ㵚䑴טׄ׾وٞجت

Slide 59

Slide 59 text

! " #$ %$ #& %& ! " %$ %& #$ #& ⺎釱⴫ ⊂ ⫝⥼ mapping x axis, y axis, color, fill, shape, linetype, alpha… aesthetic channels

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

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()

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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()

Slide 64

Slide 64 text

Wide Long Nested input output pivot_longer pivot_wider group_nest unnest ggplot visualization map output ggsave

Slide 65

Slide 65 text

enjoy!