Slide 1

Slide 1 text

3ʹΑΔσʔλղੳͷͨΊͷσʔλՄࢹԽ ࡾଜ ڤੜ ߐޱ ఩࢙ ӝੜ ਅ໵ ౷ܭؔ࿈ֶձ࿈߹େձνϡʔτϦΞϧ 2021.09.05 (online) 1: 量⼦科学技術研究開発機構 脳機能イメージング研究部 2: 千葉⼤学 予防医学センター 3: 国⽴環境研究所 ⽣物多様性領域

Slide 2

Slide 2 text

ʲ࣮ફ%BUB4DJFODFγϦʔζʳߨஊࣾ σʔλ෼ੳͷͨΊͷσʔλՄࢹԽೖ໳ ΩʔϥϯɾώʔϦʔ ஶ ӝੜਅ໵ ߐޱ఩࢙ ࡾଜڤੜ ༁

Slide 3

Slide 3 text

第1部 Rとggplot2によるデータ可視化⼊⾨ 三村 喬⽣, 量⼦科学技術研究開発機構 3ʹΑΔσʔλղੳͷͨΊͷσʔλՄࢹԽ 第2部 データの加⼯・集計と統計モデルのデータ可視化 江⼝ 哲史, 千葉⼤学 第3部 地図を描画する ⽠⽣ 真也, 国⽴環境研究所

Slide 4

Slide 4 text

3とHHQMPUによるデータ可視化入門 ࡾଜ ڤੜ .JNVSB ,PLJ ࠃཱݚڀ։ൃ๏ਓ ྔࢠՊֶٕज़ݚڀ։ൃػߏ 245 ೴ػೳΠϝʔδϯάݚڀ෦ ݚڀһ ୈ෦ 3ʹΑΔσʔλղੳͷͨΊͷσʔλՄࢹԽ

Slide 5

Slide 5 text

1. データとは 2. データ可視化事始め 3. 素晴らしい図 4. 図の装飾の明暗 5. グラフの種類 6. 視覚の認識 7. ゲシュタルトの法則 8. R事始め 9. RStudioの使い⽅ 10. R Markdownの使い⽅ 11. 初めてのggplot2 12. グラフの調整 13. 少し複雑な作図 3とHHQMPUによるデータ可視化入門

Slide 6

Slide 6 text

σʔλ 情報のうち意思伝達・解釈・処理に 適した再利⽤可能なもの 国際電気標準会議(International Electrotechnical Commission, IEC)による定義

Slide 7

Slide 7 text

σʔλ 情報のうち意思伝達・解釈・処理に 適した再利⽤可能なもの ৘ใ 実存を符号化した表象

Slide 8

Slide 8 text

σʔλ ৘ใͷ͏ͪҙࢥ఻ୡɾղऍɾॲཧʹ దͨ͠࠶ར༻Մೳͳ΋ͷ ৘ใ ࣮ଘΛූ߸Խͨ͠ද৅ ࣮ଘ ؍࡯ͷ༗ແʹΑΒͣଘࡏ͍ͯ͠Δ ΋ͷͦͷ΋ͷ ࣸ૾ʢූ߸Խʣ

Slide 9

Slide 9 text

ࣸ૾ Ϧϯΰ ʢ࣮ଘʣ Ϧϯΰ ʢ৘ใʣ mapping

Slide 10

Slide 10 text

ࣸ૾ (mapping) 𝑓: 𝑋 → 𝑌 𝑋 𝑌 ͋Δ৘ใͷू߹ͷཁૉΛɺผͷ৘ใͷू߹ͷ ͨͩͭͷཁૉʹରԠ͚ͮΔϓϩηε

Slide 11

Slide 11 text

৘ใྔ ࣮ଘ ৘ใ σʔλ Ϧϯΰ ූ߸Խ

Slide 12

Slide 12 text

৘ใྔ ࣮ଘ ৘ใ σʔλ Ϧϯΰ ූ߸Խ ৘ใྔͷଛࣦ

Slide 13

Slide 13 text

Ϧϯΰ ࣸ૾ ϑϧʔπ ੺৭ ը૾ ࣮ଘ ৘ใ νϟωϧ mapping channel

Slide 14

Slide 14 text

𝑋 𝑌 𝑦! 𝑥! 𝑦" 𝑥" 𝑋 𝑌 𝑥! 𝑥" 𝑦! 𝑦" σʔλՄࢹԽ ࣸ૾ mapping

Slide 15

Slide 15 text

𝑋 𝑌 𝑦! 𝑥! 𝑦" 𝑥" 𝑋 𝑌 𝑥! 𝑥" 𝑦! 𝑦" σʔλՄࢹԽ ࣸ૾ mapping x axis, y axis, color, fill, shape, linetype, alpha… aesthetic channels ৹ඒతνϟωϧ

Slide 16

Slide 16 text

Mimura et al., iScience, 2021

Slide 17

Slide 17 text

Mimura et al., iScience, 2021 ೴ͷย൒ٿ͚ͩҰ࣌తʹυʔύϛϯ์ग़Λߋ৽͢Δ શ਎ӡಈ΁ͷӨڹΛධՁ

Slide 18

Slide 18 text

Mimura et al., iScience, 2021 ༀ෺౤༩෼ޙ ഒ଎ϏσΦ

Slide 19

Slide 19 text

ϞʔγϣϯτϥοΩϯά sec part x y z 0.0 頭 0.0 胴 0.0 腰 0.1 頭 0.1 胴 0.1 腰 0.2 頭 ... શ਎ӡಈ σʔλ Mimura et al., iScience, 2021 cf: 3dtrack.org

Slide 20

Slide 20 text

sec part x y z 0.0 頭 0.0 胴 0.0 腰 0.1 頭 0.1 胴 0.1 腰 0.2 頭 ... ݱ৅ σʔλ άϥϑ 100時間×3600秒× 30フレーム × 3部位× 3次元 = 97,200,000⾏ 偏向回転運動 τϥοΩϯά σʔλՄࢹԽ Mimura et al., iScience, 2021

Slide 21

Slide 21 text

Mimura et al., iScience, 2021 Distance from center (cm) ᶃ ಄ͷيಓ YZฏ໘

Slide 22

Slide 22 text

Mimura et al., iScience, 2021 ᶄ ඵޙͷ࠲ඪ Head Hip

Slide 23

Slide 23 text

Mimura et al., iScience, 2021 ᶅ ճస଎౓ͷੵࢉ

Slide 24

Slide 24 text

sec part x y z 0.0 頭 0.0 胴 0.0 腰 0.1 頭 0.1 胴 0.1 腰 0.2 頭 ... ݱ৅ σʔλ άϥϑ 100時間×3600秒× 30フレーム × 3部位× 3次元 = 97,200,000⾏ 偏向回転運動 τϥοΩϯά σʔλՄࢹԽ Mimura et al., iScience, 2021

Slide 25

Slide 25 text

࣮ଘ σʔλ άϥϑ άϥϑ ؍࡯ σʔλ ՄࢹԽ σʔλ ՄࢹԽ ࣸ૾ ࣸ૾

Slide 26

Slide 26 text

lφϙϨΦϯͷϩγΞ৵߈zCZ.JOBSE $+ ૉ੖Β͍͠ਤ ※ 要旨に「標⾼」と書いてしましたが正しくは「復路の気温」です。

Slide 27

Slide 27 text

ਤͷ૷০ͷ໌҉ lո෺తͳܦඅzCZ)PMNFT / νϟʔτɾδϟϯΫʹҲΕͨਤ )FBMZ , ɾ૷০తཁૉ͕ඞͣѱͱ͍͏Θ͚Ͱ͸ͳ͍ɻ ɾ͔͠͠ಡΈखʹෛ୲ͱͳΔ૷০ ༨ܭͳ࣍ݩͷ௥ՃͳͲ ͸ආ͚·͠ΐ͏ɻ

Slide 28

Slide 28 text

άϥϑͷछྨ ΠΪϦεͷ&6཭୤ Brexit ʹؔ͢Δࠃຽ౤ථ 2016年 ref. “UK: A Divided Nation”, by Armstrong, M., 2016, https://www.statista.com/chart/5100/uk-chooses-brexit/

Slide 29

Slide 29 text

άϥϑͷछྨ ԁάϥϑ ੵΈ্͛๮άϥϑ ԣ ๮άϥϑ ॎ ΠΪϦεͷ&6཭୤ Brexit ʹؔ͢Δࠃຽ౤ථ 2016年 ࢒ཹ WT཭୤ ˞౤ථ཰ɿ

Slide 30

Slide 30 text

άϥϑͷछྨ ԁάϥϑ ੵΈ্͛๮άϥϑ ԣ ๮άϥϑ ॎ ܥྻ͕ͭ૿͚͑ͨͩͳͷʹղऍ͕೉͘͠ͳΔ

Slide 31

Slide 31 text

ࢹ֮ͷೝࣝ $IFDLFSTIBEPX *MMVTJPO "EFMTPO &) ref. http://persci.mit.edu/gallery/checkershadow

Slide 32

Slide 32 text

ࢹ֮ͷೝࣝ ref. http://persci.mit.edu/gallery/checkershadow ͜ͷลΓͰΑ͏΍͘ʮಉ͡৭ʯʹݟ͑ͯ͘Δ ☝

Slide 33

Slide 33 text

ࢹ֮ͷೝࣝ ref. http://persci.mit.edu/gallery/checkershadow ͜ͷลΓͰΑ͏΍͘ʮಉ͡৭ʯʹݟ͑ͯ͘Δ ☝ ೴͸֎ք͔Βͷޫ৴߸Λͦͷ··ೝ͍ࣝͯ͠ΔΘ͚Ͱ͸ͳ͘ɺਆܦճ࿏ͷ఻ୡ աఔͰύλʔϯ΍ܦݧͳͲʹج͍ͮͯम০͞Εͨ৘ใΛೝࣝ͢Δɻ σʔλՄࢹԽʹ͓͍ͯ΋͜ΕΒͷ஌֮తಛੑΛे෼ʹߟྀ͢Δ͜ͱͰɺ ޡղ͞ΕΔ͢ΔϦεΫΛԼ͛Δ͜ͱ͕Ͱ͖Δɻ

Slide 34

Slide 34 text

ήγϡλϧτͷ๏ଇ )FBMZ ,

Slide 35

Slide 35 text

લ൒ͷ·ͱΊ

Slide 36

Slide 36 text

σʔλ ৘ใͷ͏ͪҙࢥ఻ୡɾղऍɾॲཧʹ దͨ͠࠶ར༻Մೳͳ΋ͷ ৘ใ ࣮ଘΛූ߸Խͨ͠ද৅ ࣮ଘ ؍࡯ͷ༗ແʹΑΒͣଘࡏ͍ͯ͠Δ ΋ͷͦͷ΋ͷ ࣸ૾ʢූ߸Խʣ σʔλ͸ࣸ૾

Slide 37

Slide 37 text

𝑋 𝑌 𝑦! 𝑥! 𝑦" 𝑥" 𝑋 𝑌 𝑥! 𝑥" 𝑦! 𝑦" ࣸ૾ mapping σʔλՄࢹԽ΋ࣸ૾

Slide 38

Slide 38 text

࣮ଘ ࣸ૾ʢ؍࡯ʣ σʔλՄࢹԽ σʔλ ࣸ૾ʢσʔλՄࢹԽʣ άϥϑ ΋ͷͦͷ΋ͷ ڞ༗Մೳͳූ߸ ࢹ֮త৹ඒతදݱ

Slide 39

Slide 39 text

Ϧϯΰ ࣸ૾ ϑϧʔπ ੺৭ ը૾ ࣮ଘ ৘ใ νϟωϧ mapping channel ࣸ૾ͱνϟωϧ

Slide 40

Slide 40 text

𝑋 𝑌 𝑦! 𝑥! 𝑦" 𝑥" 𝑋 𝑌 𝑥! 𝑥" 𝑦! 𝑦" x axis, y axis, color, fill, shape, linetype, alpha… aesthetic channels ࣸ૾ mapping σʔλՄࢹԽʹ͓͚Δࣸ૾ͱνϟωϧ ৹ඒతνϟωϧ

Slide 41

Slide 41 text

𝑋 𝑌 𝑦! 𝑥! 𝑦" 𝑥" 𝑋 𝑌 𝑥! 𝑥" 𝑦! 𝑦" x axis, y axis, color, fill, shape, linetype, alpha… aesthetic channels ࣸ૾ mapping ৹ඒతνϟωϧ ggplot(data = my_data) + aes(x = X, y = Y)) + goem_point() HHQMPUʹΑΔ࡞ਤ ʢޙ൒ͷ಺༰ʣ

Slide 42

Slide 42 text

3Λ࢝ΊΑ͏ ɾແྉ ɾ جຊతͳ؀ڥͷ ಋೖίετ͕௿͍ ɾσʔλαΠΤϯεʹඞཁͳػೳ͕ॆ࣮ ɾ֦ுػೳ ύοέʔδ ͕๛෋ ɾίϛϡχςΟ͕ڧ͍ ˡ͜Ε͸ϙδγϣϯɾτʔΫͰ͢

Slide 43

Slide 43 text

3Λ࢝ΊΑ͏ ɾແྉ ɾ جຊతͳ؀ڥͷ ಋೖίετ͕௿͍ ɾσʔλαΠΤϯεʹඞཁͳػೳ͕ॆ࣮ ɾ֦ுػೳ ύοέʔδ ͕๛෋ ɾίϛϡχςΟ͕ڧ͍ ˡ͜Ε͸ϙδγϣϯɾτʔΫͰ͢ hEps://tokyor.connpass.com/

Slide 44

Slide 44 text

3Λ࢝ΊΑ͏ ɾແྉ ɾ جຊతͳ؀ڥͷ ಋೖίετ͕௿͍ ɾσʔλαΠΤϯεʹඞཁͳػೳ͕ॆ࣮ ɾ֦ுػೳ ύοέʔδ ͕๛෋ ɾίϛϡχςΟ͕ڧ͍ ˡ͜Ε͸ϙδγϣϯɾτʔΫͰ͢

Slide 45

Slide 45 text

3Λ࢝ΊΑ͏ ɾແྉ ɾ جຊతͳ؀ڥͷ ಋೖίετ͕௿͍ ɾσʔλαΠΤϯεʹඞཁͳػೳ͕ॆ࣮ ɾ֦ுػೳ ύοέʔδ ͕๛෋ ɾίϛϡχςΟ͕ڧ͍ ˡ͜Ε͸ϙδγϣϯɾτʔΫͰ͢ SXBLBMBOH TMBDLXPSLTQBDF .FNCFSਓ

Slide 46

Slide 46 text

3Λ࢝ΊΑ͏ 【⼿順】 1. Rをインストール 2. Rstudioをインストール https://www.r-project.org/ https://www.rstudio.com/

Slide 47

Slide 47 text

3ΛΠϯετʔϧ ☝

Slide 48

Slide 48 text

34UVEJPΛΠϯετʔϧ ౷߹։ൃ؀ڥ JOUFHSBUFEEFWFMPQNFOUFOWJSPONFOU *%& ☝

Slide 49

Slide 49 text

34UVEJPΛΠϯετʔϧ ౷߹։ൃ؀ڥ JOUFHSBUFEEFWFMPQNFOUFOWJSPONFOU *%& ☝

Slide 50

Slide 50 text

3TUVEJPͷجຊͷΩ εΫϦϓτ ίϯιʔϧ ؀ڥͳͲ ͦͷଞɿϓϩοτͳͲ 1 ここに書いて 2 選択して 3 実⾏(⌘ + ↩) 実⾏結果が表⽰される

Slide 51

Slide 51 text

3TUVEJPͷجຊͷΩ

Slide 52

Slide 52 text

3TUVEJPͷجຊͷΩ

Slide 53

Slide 53 text

3TUVEJPͷجຊͷΩ x <- 1 y <- 2 x + y > x + y [1] 3 εΫϦϓτʹॻ͘಺༰ ίϯιʔϧͷग़ྗ

Slide 54

Slide 54 text

3TUVEJPͷجຊͷΩ x <- 1 y <- 2 x <- 2 > x + y [1] 4 εΫϦϓτʹॻ͘಺༰ ίϯιʔϧͷग़ྗ ಉ͡ม਺໊ʹ୅ೖ͢Δͱ্ॻ͖͞ΕΔ ίϝϯτΞ΢τه߸

Slide 55

Slide 55 text

ύοέʔδ $3"/ 5IF$PNQSFIFOTJWF3"SDIJWF/FUXPSL 3։ൃνʔϜ͕؅ཧ͢ΔύοέʔδϦϙδτϦ hEps://cran.r-project.org/ 2021.09.04

Slide 56

Slide 56 text

ύοέʔδ $3"/ 5IF$PNQSFIFOTJWF3"SDIJWF/FUXPSL 3։ൃνʔϜ͕؅ཧ͢ΔύοέʔδϦϙδτϦ https://cran.r-project.org/ install.packages(pkgs = "tidyverse") 'dyverse: データサイエンス関連パッケージ群をまとめたパッケージ ・dplyr: テーブルデータの加⼯・集計 ・ggplot2: グラフの描画 ・stringr: ⽂字列加⼯ ・'dyr: データの整形や変形 ・purrrr: 関数型プログラミング⽤ ・magri5r: パイプ演算⼦%>%を提供 $3"/͔ΒύοέʔδΛΠϯετʔϧ ☝

Slide 57

Slide 57 text

ύοέʔδ $3"/ 5IF$PNQSFIFOTJWF3"SDIJWF/FUXPSL 3։ൃνʔϜ͕؅ཧ͢ΔύοέʔδϦϙδτϦ https://cran.r-project.org/ install.packages(pkgs = "tidyverse") $3"/͔ΒύοέʔδΛΠϯετʔϧ library(package = "tidyverse") library(tidyverse) # こう書いても良い ݱࡏͷ؀ڥͰύοέʔδΛ༗ޮԽ

Slide 58

Slide 58 text

3ͰςʔϒϧσʔλΛѻ͏ ࣮ଘ ࣸ૾ʢ؍࡯ʣ σʔλ ࣸ૾ʢσʔλՄࢹԽʣ άϥϑ sec part x y z 0.0 頭 0.0 胴 0.0 腰 0.1 頭 0.1 胴 0.1 腰 0.2 頭 ... ม਺ variable ؍࡯ observation ଌఆ͞Εͨม਺ಉ͕࢜ɺ ؍࡯ʹΑΓඥ͚ͮΒΕͨςʔϒϧ data.frame

Slide 59

Slide 59 text

EBUBGSBNFΛ࡞Δ my_data <- data.frame(tag = c("a", "b", "c"), x = c(1, 2, 3), y = c(4, 7, 9)) > my_data tag x y 1 a 1 4 2 b 2 7 3 c 3 9 ؔ਺ ม਺໊ ΦϒδΣΫτ໊ ୅ೖԋࢉࢠ ϕΫτϧ จࣈܕ ਺஋ܕ

Slide 60

Slide 60 text

نଇతͳϕΫτϧΛ࡞Δ c(1, 2, 3) c(1:3) seq(from = 1, to = 3, by = 1) [1] 1 2 3 rep(x = c(1:2), times = 3) [1] 1 2 1 2 1 2 ౳ࠩϕΫτϧ ܁Γฦ͠ϕΫτϧ rep(x = c(1:2), each = 3) [1] 1 1 1 2 2 2

Slide 61

Slide 61 text

EBUBGSBNFͷಡΈॻ͖ 📁 📁 ࡞ۀϑΥϧμ script.R data.csv (working directory) data 📁fig # 現在のwdを確認 getwd() # wdを指定 setwd("directorypath") # フォルダを作成 dir.create("data") my_data <- read.csv(file = "data/data.csv") write.csv(x = my_data file = "data/data.csv") ಡΈࠐΈ ॻ͖ग़͠

Slide 62

Slide 62 text

४උͷ֬ೝ 3ΛΠϯετʔϧ 3TUVEJPΛΠϯετʔϧ UJEZWFSTFΛΠϯετʔϧ EBUBGSBNFΛ࡞੒ PSಡΈࠐΈ

Slide 63

Slide 63 text

3ͰςʔϒϧσʔλΛѻ͏ ࣮ଘ ࣸ૾ʢ؍࡯ʣ σʔλ ࣸ૾ʢσʔλՄࢹԽʣ άϥϑ 𝑋 𝑌 𝑦! 𝑥! 𝑦" 𝑥" 𝑋 𝑌 𝑥! 𝑥" 𝑦! 𝑦" EBUB mapping aesthetic channels ৹ඒతνϟωϧ

Slide 64

Slide 64 text

ॳΊͯͷHHQMPU library(tidyverse) dat <- data.frame(tag = rep(c("a", "b"), each = 2), X = c(1, 3, 5, 7), Y = c(3, 9, 4, 2)) ggplot() + geom_point(data = dat, mapping = aes(x = X, y = Y))

Slide 65

Slide 65 text

ॳΊͯͷHHQMPU

Slide 66

Slide 66 text

ॳΊͯͷHHQMPU library(tidyverse) dat <- data.frame(tag = rep(c("a", "b"), each = 2), X = c(1, 3, 5, 7), Y = c(3, 9, 4, 2)) ggplot() + geom_point(data = dat, mapping = aes(x = X, y = Y)) EBUBGSBNFͷࢦఆ BFT ؔ਺ͷதͰ৹ඒతཁૉͱͯ͠ม਺ͱνϟωϧͷରԠΛࢦఆ ඳը։࢝Λએݴ ه߸Ͱͭͳ͙ BFT ؔ਺ͷҾ਺໊ EBUͷม਺໊ άϥϑͷछྨʹ߹ΘͤͨHFPN@ ؔ਺Λ࢖༻

Slide 67

Slide 67 text

library(tidyverse) dat <- data.frame(tag = rep(c("a", "b"), each = 2), X = c(1, 3, 5, 7), Y = c(3, 9, 4, 2)) ggplot() + geom_point(data = dat, mapping = aes(x = X, y = Y)) + geom_path(data = dat, mapping = aes(x = X, y = Y)) ॳΊ͔ͯΒ൪໨ͷHHQMPU

Slide 68

Slide 68 text

ॳΊ͔ͯΒ൪໨ͷHHQMPU

Slide 69

Slide 69 text

HHQMPUίʔυͷॻ͖ํͷ৭ʑ ggplot() + geom_point(data = dat, mapping = aes(x = X, y = Y)) + geom_path(data = dat, mapping = aes(x = X, y = Y)) ggplot(data = dat, mapping = aes(x = X, y = Y)) + geom_point() + geom_path() ggplot(data = dat) + aes(x = X, y = Y) + geom_point() + geom_path() ڞ௨ͷࢦఆΛHHQMPU ؔ਺ͷதͰߦ͍ɺҎԼলུ͢Δ͜ͱ͕Մೳ NBQQJOHͷ৘ใ͕ॻ͔ΕͨBFT ؔ਺ΛHHQMPU ؔ਺ͷ֎ʹஔ͘͜ͱ΋Ͱ͖Δ

Slide 70

Slide 70 text

HHQMPUίʔυͷॻ͖ํͷ৭ʑ ggplot() + geom_point(data = dat, mapping = aes(x = X, y = Y, color = tag)) + geom_path(data = dat, mapping = aes(x = X, y = Y)) ggplot(data = dat) + aes(x = X, y = Y) + # 括り出すのは共通するものだけ geom_point(mapping = aes(color = tag)) + geom_path() ϙΠϯτͷ৭ͷNBQQJOHΛࢦఆ

Slide 71

Slide 71 text

HHQMPUίʔυͷॻ͖ํͷ৭ʑ ggplot(data = dat) + aes(x = X, y = Y) + geom_point(aes(color = tag)) + geom_path() ggplot(data = dat) + aes(x = X, y = Y) + geom_path() + geom_point(aes(color = tag)) ͋ͱ͔ΒͰॏͶͨཁૉ͕લ໘ʹඳը͞ΕΔ

Slide 72

Slide 72 text

library(tidyverse) dat <- data.frame(tag = rep(c("a", "b"), each = 2), X = c(1, 3, 5, 7), Y = c(3, 9, 4, 2)) g <- ggplot(data = dat) + aes(x = X, y = Y) + geom_path() + geom_point(mapping = aes(color = tag)) HHQMPUը૾ͷอଘ ggsave(filename = "fig/demo01.png", plot = g, width = 4, height = 3, dpi = 150)

Slide 73

Slide 73 text

library(tidyverse) dat <- data.frame(tag = rep(c("a", "b"), each = 2), X = c(1, 3, 5, 7), Y = c(3, 9, 4, 2)) g <- ggplot(data = dat) + aes(x = X, y = Y) + geom_path() + geom_point(mapping = aes(color = tag)) HHQMPUը૾ͷอଘ ggsave(filename = "fig/demo01.png", plot = g, width = 4, height = 3, dpi = 150) αΠζ͸σϑΥϧτͰ͸Πϯν୯ҐͰࢦఆ

Slide 74

Slide 74 text

library(tidyverse) dat <- data.frame(tag = rep(c("a", "b"), each = 2), X = c(1, 3, 5, 7), Y = c(3, 9, 4, 2)) g <- ggplot(data = dat) + aes(x = X, y = Y) + geom_path() + geom_point(mapping = aes(color = tag)) HHQMPUը૾ͷอଘ ggsave(filename = "fig/demo01.png", plot = g, width = 10, height = 7.5, dpi = 150, units = "cm") # "cm", "mm", "in"を指定可能

Slide 75

Slide 75 text

HFNP@ ؔ਺܈ DGIUUQTXXXSTUVEJPDPNSFTPVSDFTDIFBUTIFFUT

Slide 76

Slide 76 text

ෳ਺ͷܥྻΛඳը͢Δ > head(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 ggplot(data = anscombe) + geom_point(aes(x = x1, y = y1)) + geom_point(aes(x = x2, y = y2), color = "Red") + geom_point(aes(x = x3, y = y3), color = "Blue") + geom_point(aes(x = x4, y = y4), color = "Green") ͜Ε·Ͱͷ஌ࣝͰؤுΔͱ͜͏ͳΔ

Slide 77

Slide 77 text

HHQMPUʹΑΔσʔλՄࢹԽ ࣮ଘ ࣸ૾ʢ؍࡯ʣ σʔλ ࣸ૾ʢσʔλՄࢹԽʣ άϥϑ 𝑋 𝑌 𝑦! 𝑥! 𝑦" 𝑥" SBXEBUB 写像 aesthetic channels ৹ඒతνϟωϧ ՄࢹԽʹదͨ͠EBUBܗࣜ 変形 ਤͷͭͷ৹ඒతνϟωϧ͕ σʔλͷͭͷม਺ʹରԠ͍ͯ͠Δ

Slide 78

Slide 78 text

> head(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 > head(anscombe_long) 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 ggplot(data = anscombe_long) + aes(x = x, y = y, color = key) + geom_point() ৹ඒతνϟωϧ Y࣠ Z࣠ ৭ ʹରԠ͢Δม਺ʹͳΔΑ͏มܗ ݟ௨͠ྑ͘γϯϓϧʹՄࢹԽͰ͖Δ

Slide 79

Slide 79 text

> head(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 > head(anscombe_long) 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 ৹ඒతνϟωϧ Y࣠ Z࣠ ৭ ʹରԠ͢Δม਺ʹͳΔΑ͏มܗ anscombe_long <- pivot_longer(data = anscombe, cols = everything(), names_to = c(".value", "key"), names_pattern = "(.)(.)") ԣ௕σʔλ ॎ௕σʔλ

Slide 80

Slide 80 text

ggplot(data = anscombe_long) + aes(x = x, y = y, color = key) + geom_point() ggplot(data = anscombe_long) + aes(x = x, y = y, color = key) + geom_point() + facet_wrap(facets = . ~ key, nrow = 1) ਫ४ͰਤΛ෼ׂ͢Δ

Slide 81

Slide 81 text

ޙ൒ͷ·ͱΊ

Slide 82

Slide 82 text

3ͰςʔϒϧσʔλΛѻ͏ ࣮ଘ ࣸ૾ʢ؍࡯ʣ σʔλ ࣸ૾ʢσʔλՄࢹԽʣ άϥϑ sec part x y z 0.0 頭 0.0 胴 0.0 腰 0.1 頭 0.1 胴 0.1 腰 0.2 頭 ... ม਺ variable ؍࡯ observation ଌఆ͞Εͨม਺ಉ͕࢜ɺ ؍࡯ʹΑΓඥ͚ͮΒΕͨςʔϒϧ data.frame

Slide 83

Slide 83 text

EBUBGSBNFΛ࡞Δ my_data <- data.frame(tag = c("a", "b", "c"), x = c(1, 2, 3), y = c(4, 7, 9)) > my_data tag x y 1 a 1 4 2 b 2 7 3 c 3 9 ؔ਺ ม਺໊ ΦϒδΣΫτ໊ ୅ೖԋࢉࢠ ϕΫτϧ จࣈܕ ਺஋ܕ

Slide 84

Slide 84 text

3ͰςʔϒϧσʔλΛѻ͏ ࣮ଘ ࣸ૾ʢ؍࡯ʣ σʔλ ࣸ૾ʢσʔλՄࢹԽʣ άϥϑ 𝑋 𝑌 𝑦! 𝑥! 𝑦" 𝑥" 𝑋 𝑌 𝑥! 𝑥" 𝑦! 𝑦" EBUB mapping aesthetic channels ৹ඒతνϟωϧ

Slide 85

Slide 85 text

library(tidyverse) dat <- data.frame(tag = rep(c("a", "b"), each = 2), X = c(1, 3, 5, 7), Y = c(3, 9, 4, 2)) g <- ggplot(data = dat) + aes(x = X, y = Y) + geom_path() + geom_point(mapping = aes(color = tag)) HHQMPUʹΑΔ࡞ਤͷجຊ ggsave(filename = "fig/demo01.png", plot = g, width = 4, height = 3, dpi = 150)

Slide 86

Slide 86 text

anscombe_long <- pivot_longer(data = dat, cols = everything(), names_to = c(".value", "key"), names_pattern = "(.)(.)") library(tidyverse) dat <- anscombe ggplot(data = anscombe_long) + aes(x = x, y = y, color = key) + geom_point() + facet_wrap(facets = . ~ key, nrow = 1) HHQMPUʹΑΔ࡞ਤʢσʔλΛมܗ͢Δʣ

Slide 87

Slide 87 text

HHQMPUʹΑΔσʔλՄࢹԽ ࣮ଘ ࣸ૾ʢ؍࡯ʣ σʔλ ࣸ૾ʢσʔλՄࢹԽʣ άϥϑ 𝑋 𝑌 𝑦! 𝑥! 𝑦" 𝑥" SBXEBUB 写像 aesthetic channels ৹ඒతνϟωϧ ՄࢹԽʹదͨ͠EBUBܗࣜ 変形 ਤͷͭͷ৹ඒతνϟωϧ͕ σʔλͷͭͷม਺ʹରԠ͍ͯ͠Δ

Slide 88

Slide 88 text

Ϧϯΰ ࣸ૾ ϑϧʔπ ੺৭ ը૾ ࣮ଘ ৘ใ νϟωϧ mapping channel ࣸ૾ͱνϟωϧ

Slide 89

Slide 89 text

࣮ଘ ࣸ૾ʢ؍࡯ʣ σʔλՄࢹԽ σʔλ ࣸ૾ʢσʔλՄࢹԽʣ άϥϑ ΋ͷͦͷ΋ͷ ڞ༗Մೳͳූ߸ ࢹ֮త৹ඒతදݱ

Slide 90

Slide 90 text

Thank you for your attention!