Slide 1

Slide 1 text

#109 @kilometer00 2023.10.07 Data Visualization in R

Slide 2

Slide 2 text

Who!? Who?

Slide 3

Slide 3 text

Who!? ・ @kilometer ・特任教員 (Ph.D. Eng.) ・神経科学 ・⾏動計算論 ・データ可視化 ・R: ~ 15 years ・近況:「鵼」読了。

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

宣伝!!(書籍の翻訳に参加しました。) 絶賛販売中! (ジャン献本に1冊どうぞ)

Slide 6

Slide 6 text

宣伝!! (医療健康データ科学研究ネットワークの加盟者向け) 先⾏受付 開始しました!!

Slide 7

Slide 7 text

@kilometer00 Data Visualization in R

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

IEEE Spectrum’s Top Programming Languages 2022 https://spectrum.ieee.org/top-programming-languages-2022

Slide 10

Slide 10 text

https://spectrum.ieee.org/top-programming-languages-methods

Slide 11

Slide 11 text

https://spectrum.ieee.org/top-programming-languages-methods

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

TIOBE Index for July 2023 https://www.tiobe.com/tiobe-index/

Slide 14

Slide 14 text

https://www.tiobe.com/tiobe-index/

Slide 15

Slide 15 text

https://twitter.com/hadleywickham/status/1279405379449913344?s=20

Slide 16

Slide 16 text

https://gist.github.com/daroczig/ Number of R packages ever published on CRAN

Slide 17

Slide 17 text

https://cran.r-project.org/web/packages/ The Comprehensive R Archive Network (CRAN)

Slide 18

Slide 18 text

h"ps://www.datasciencemeta.com/rpackages

Slide 19

Slide 19 text

h"ps://www.datasciencemeta.com/rpackages

Slide 20

Slide 20 text

Rを始めよう Rの基礎知識 データ可視化の基礎 □ □ □

Slide 21

Slide 21 text

の始め⽅ 1. Rをインストール 2. RStudioをインストール https://www.r-project.org/ https://posit.co/download/rstudio-desktop/

Slide 22

Slide 22 text

の始め⽅ 3. RStudioを⽴ち上げる 4. 新規プロジェクトを作る 6. tidyverseをインストール install.packages("tidyverse") 5. 新規スクリプトを開く File -> New Project... ⌘ ⇧ N

Slide 23

Slide 23 text

① ここにRのコードを書く ② 選択して実⾏(⌘↩) ③ 実⾏結果が表⽰ スクリプト → 名前をつけて保存 コンソール RStudioの操作

Slide 24

Slide 24 text

① ここにRのコードを書く ② 選択して実⾏(⌘↩) ③ 実⾏結果が表⽰ スクリプト → 名前をつけて保存 コンソール 環境変数などが表⽰ ファイル/プロット/ヘルプなど ⾃動で反映 RStudioの操作

Slide 25

Slide 25 text

の基本

Slide 26

Slide 26 text

例えばExcelでは、 セルの内部に関数を書いて 結果だけを表⽰する

Slide 27

Slide 27 text

例えばExcelでは、 セルの内部に関数を書いて 結果だけを表⽰する どこまでが共通の属性なのか 直感的な配置から読み取る

Slide 28

Slide 28 text

の基本 a <- 5 x <- 1:5 y <- a * x 代⼊演算⼦ オブジェクト コード

Slide 29

Slide 29 text

選択して実⾏(⌘↩) ⾃動で反映 実⾏内容 書く

Slide 30

Slide 30 text

の基本 Q. オブジェクトの中⾝が⾒たい時はどうするの? A. オブジェクト名だけを選択して実⾏します。

Slide 31

Slide 31 text

実⾏(⌘↩)

Slide 32

Slide 32 text

の基本 Q. オブジェクトの中⾝が⾒たい時はどうするの? A. オブジェクト名だけを選択して実⾏します。 Q. 既にある表データをRに読み込みたいんですが? A. read_csv()関数を使います。

Slide 33

Slide 33 text

の基本 path <- "data/Book1.csv" read_csv(path)

Slide 34

Slide 34 text

実⾏(⌘↩) エラー:そんな関数ないよ

Slide 35

Slide 35 text

の基本 CRAN The Comprehensive R Archive Network packages

Slide 36

Slide 36 text

install.packages("tidyverse") の基本 1. パッケージのインストール 2. インストールされたパッケージを使う library(tidyverse)

Slide 37

Slide 37 text

実⾏(⌘↩) 読み込めたけど... コレとコレ は省きたい (データじゃない)

Slide 38

Slide 38 text

の基本 library(tidyverse) path <- "data/Book1.csv" read_csv(path, skip = 2)

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

いちいちcsvに出⼒するの⾯倒だから エクセルファイルのまま読み込みたいなぁ。

Slide 41

Slide 41 text

library(tidyverse) path <- "data/Book1.xls" read_xlsx(path, skip = 2) の基本

Slide 42

Slide 42 text

エラー:そんな関数ないよ

Slide 43

Slide 43 text

library(tidyverse) library(readxl) path <- "data/Book1.xls" read_xlsx(path, skip = 2) の基本

Slide 44

Slide 44 text

そんな名前のファイル無いよ

Slide 45

Slide 45 text

無いことないだろ!!!?? さっき作ったばっかりだぞ!!

Slide 46

Slide 46 text

無いことないだろ!!!?? さっき作ったばっかりだぞ!! ほら!!!!!!

Slide 47

Slide 47 text

無いことないだろ!!!?? さっき作ったばっかりだぞ!! ほら!!!!!! 😇 ほら...ぁ...

Slide 48

Slide 48 text

library(tidyverse) library(readxl) path <- "data/Book1.xlsx" read_xlsx(path, skip = 2) の基本

Slide 49

Slide 49 text

😇 できた

Slide 50

Slide 50 text

プログラムは思った通りには動かない。 書いた通りに動くのだ。 誰が⾔ったか知らないが、

Slide 51

Slide 51 text

の始め⽅ おすすめパッケージ達 ・ tidyverse (データ科学総合ツール) ・ data.table (大きいデータ取り扱うなら) ・ cmdstanr (ベイズ統計やるなら) ・ patchwork (データ可視化やるなら) 最初から全部いれる必要はないよ!

Slide 52

Slide 52 text

基礎知識1 data.frame

Slide 53

Slide 53 text

ベクトル (vector) x <- c(5:10) ## x ## [1] 5 6 7 8 9 10 ## ## x[3] ## [1] 7 ## ## x[c(2, 5, 1)] ## [1] 6 9 5

Slide 54

Slide 54 text

リスト (list) list( c(1:3), letters[1:3], seq(3, 5, by = 1)) ## [[1]] ## [1] 1 2 3 ## ## [[2]] ## [1] "a" "b" "c" ## ## [[3]] ## [1] 3 4 5

Slide 55

Slide 55 text

名前付きリスト (named list) list( x = c(1:3), y = letters[1:3], z = seq(3, 5, by = 1)) ## $x ## [1] 1 2 3 ## ## $y ## [1] "a" "b" "c" ## ## $z ## [1] 3 4 5

Slide 56

Slide 56 text

データフレーム (data.frame) data.frame( x = c(1:3), y = letters[1:3], z = seq(3, 5, by = 1)) ## x y z ## 1 1 a 3 ## 2 2 b 4 ## 3 3 c 5

Slide 57

Slide 57 text

data.frame( x = c(1:3), y = letters[1:3], z = seq(3, 5, by = 1)) ## x y z ## 1 1 a 3 ## 2 2 b 4 ## 3 3 c 5 observa(on variable データフレーム (data.frame)

Slide 58

Slide 58 text

パイプ演算⼦ 基礎知識2 (今⽇の発表では登場しないけどね!)

Slide 59

Slide 59 text

1JQFBMHFCSB X %>% f X %>% f(y) X %>% f %>% g X %>% f(y, .) f(X) f(X, y) g(f(X)) f(y, X) %>% {magri(r} 「dplyr再⼊⾨(基本編)」yutanihila8on h"ps://speakerdeck.com/yutannihila6on/dplyrzai-ru-men-ji-ben-bian

Slide 60

Slide 60 text

縦横データの変換 基礎知識3 (後で出てくるよ!)

Slide 61

Slide 61 text

横⻑データ (wide format data) .cols <- c("name", "height", "mass", "birth_year") dat_wide <- starwars[1:4, .cols] ## > dat_wide ## # A tibble: 4 × 4 ## name height mass birth_year ## ## 1 Luke Skywalker 172 77 19 ## 2 C-3PO 167 75 112 ## 3 R2-D2 96 32 33 ## 4 Darth Vader 202 136 41.9

Slide 62

Slide 62 text

縦⻑データ (long format data) ## > dat_long ## # A tibble: 12 × 3 ## name parameter value ## ## 1 Luke Skywalker height 172 ## 2 Luke Skywalker mass 77 ## 3 Luke Skywalker birth_year 19 ## 4 C-3PO height 167 ## 5 C-3PO mass 75 ## 6 C-3PO birth_year 112 ## 7 R2-D2 height 96 ## 8 R2-D2 mass 32 ## 9 R2-D2 birth_year 33 ## 10 Darth Vader height 202 ## 11 Darth Vader mass 136 ## 12 Darth Vader birth_year 41.9

Slide 63

Slide 63 text

横⻑→縦⻑データ (wide → long) tidyr::pivot_longer( data = dat_wide, cols = !name, names_to = "parameter", values_to = "value" ) 縦⻑→横⻑データ (long → wide) tidyr::pivot_wider( data = dat_long, names_from = "parameter", values_from = "value" )

Slide 64

Slide 64 text

Rを始めよう Rの基礎知識 データ可視化の基礎 □ □ □ ✔ ✔

Slide 65

Slide 65 text

@上野の森美術館 2023.05.31-07.22 特別展:恐⻯図鑑 失われた世界の想像/創造 h"ps://kyoryu-zukan.jp

Slide 66

Slide 66 text

Allmon WD., Earth Sciences History 36(1):1-29 (2017), DOI:10.17704/1944-6178-36.1.1

Slide 67

Slide 67 text

Allmon WD., Earth Sciences History 36(1):1-29 (2017), DOI:10.17704/1944-6178-36.1.1

Slide 68

Slide 68 text

Allmon WD., Earth Sciences History 36(1):1-29 (2017), DOI:10.17704/1944-6178-36.1.1

Slide 69

Slide 69 text

“アンモナイト類の復元画と分類学的⻫⼀説の挑戦” 現在は過去を説明する鍵であるという考え⽅ (C. Lyell, “Principles of Geology”, 1830) Allmon WD., Earth Sciences History 36(1):1-29 (2017), DOI:10.17704/1944-6178-36.1.1

Slide 70

Slide 70 text

福井県⽴恐⻯博物館恐⻯・古⽣物 Q&A > アンモナイトって何のなかま? https://www.dinosaur.pref.fukui.jp/dino/faq/r02085.html

Slide 71

Slide 71 text

アオイガイ (Argonauta argo) メスでは2本の腕が特殊な形状に発達し、 そこからの分泌物で卵を保育する⾙殻を 形成する。 https://丹後.com from Wikipedia JP, Public Domain

Slide 72

Slide 72 text

Allmon WD., Earth Sciences History 36(1):1-29 (2017), DOI:10.17704/1944-6178-36.1.1

Slide 73

Slide 73 text

Allmon WD., Earth Sciences History 36(1):1-29 (2017), DOI:10.17704/1944-6178-36.1.1

Slide 74

Slide 74 text

Allmon WD., Earth Sciences History 36(1):1-29 (2017), DOI:10.17704/1944-6178-36.1.1

Slide 75

Slide 75 text

Allmon WD., Earth Sciences History 36(1):1-29 (2017), DOI:10.17704/1944-6178-36.1.1 オウムガイ from Wikipedia JP CC BY-SA 2.5 DEED

Slide 76

Slide 76 text

Suture paIern formaKon in ammonites and the unknown rear mantle structure Inoue, S., Konodo, S., ScienKfic Reports, (6) 33689 (2016), DOI: 10.1038/srep33689.

Slide 77

Slide 77 text

Suture paIern formaKon in ammonites and the unknown rear mantle structure Inoue, S., Konodo, S., ScienKfic Reports, (6) 33689 (2016), DOI: 10.1038/srep33689. マダコ from Wikipedia JP CC BY-SA 3.0 DEED

Slide 78

Slide 78 text

؍࡯ͷ༗ແʹΑΒͣଘࡏ͍ͯ͠Δ ΋ͷͦͷ΋ͷ ࣮ଘ ৘ใ ࣮ଘΛූ߸Խͨ͠ද৅ ਤ ओͱͯ͠఻ୡΛ໨తͱͨ͠ ৘ใͷࢹ֮తද৅ ؍࡯ʢࣸ૾ʣ ՄࢹԽʢࣸ૾ʣ

Slide 79

Slide 79 text

࣮ଘ ਤ ࣸ૾ʢ؍࡯ʣ ৘ใ ࣸ૾ʢՄࢹԽʣ

Slide 80

Slide 80 text

集合𝑋 集合𝑌 要素𝑥 要素𝑦 写像 𝑓: 𝑋 → 𝑌もしくは𝑓: 𝑥 ⟼ 𝑦 (始集合・定義域) (終集合・終域) 【写像】 ある集合の要素を他の集合のただ1つの要素に 対応づける規則

Slide 81

Slide 81 text

ࣸ૾ Ϧϯΰ ʢ࣮ଘʣ Ϧϯΰ ʢσʔλʣ mapping

Slide 82

Slide 82 text

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

Slide 83

Slide 83 text

地図空間 ⽣物種名空間 名空間 ⾦銭価値空間 (円) ⾦銭価値空間 (ドル) コーヒー ¥290 $2.53 [緯度, 経度] Homo sapiens 実存 写像 写像 写像 写像 写像 写像 情報 【写像】 ある集合の要素を他の集合のただ1つの要素に対応づける規則

Slide 84

Slide 84 text

࣮ଘ ਤ ࣸ૾ʢ؍࡯ʣ ৘ใ ࣸ૾ʢՄࢹԽʣ

Slide 85

Slide 85 text

࣮ଘ ࣸ૾ʢ؍࡯ʣ σʔλ ࣸ૾ʢσʔλՄࢹԽʣ άϥϑ 𝑋 𝑌 𝑦! 𝑥! 𝑦" 𝑥" 𝑋 𝑌 𝑥! 𝑥" 𝑦! 𝑦" EBUB mapping σʔλՄࢹԽ

Slide 86

Slide 86 text

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

Slide 87

Slide 87 text

𝑋 𝑌 𝑦! 𝑥! 𝑦" 𝑥" 𝑋 𝑌 𝑥! 𝑥" 𝑦! 𝑦" σʔλՄࢹԽ ࣸ૾ mapping x axis, y axis, color, fill, shape, linetype, alpha… aesthetic channels ৹ඒతνϟωϧ ggplot(data = my_data) + aes(x = X, y = Y)) + goem_point() HHQMPUʹΑΔ࡞ਤ

Slide 88

Slide 88 text

初めてのggplot2 dat <- data.frame( tag = rep(c("a", "b"), each = 2), X = c(1, 3, 5, 7), Y = c(3, 9, 4, 2) ) ggplot2::ggplot() + ggplot2::geom_point( data = dat, mapping = ggplot2::aes(x = X, y = Y) )

Slide 89

Slide 89 text

初めてのggplot2 dat <- data.frame( tag = rep(c("a", "b"), each = 2), X = c(1, 3, 5, 7), Y = c(3, 9, 4, 2) ) ggplot2::ggplot() + ggplot2::geom_point( data = dat, mapping = ggplot2::aes(x = X, y = Y) ) ඳը։࢝Λએݴ ه߸Ͱͭͳ͙ 様々な審美的チャネル(aesthetic channels)を指定できる

Slide 90

Slide 90 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 91

Slide 91 text

ॳΊ͔ͯΒ൪໨ͷHHQMPU

Slide 92

Slide 92 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 93

Slide 93 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 94

Slide 94 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 95

Slide 95 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 96

Slide 96 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 97

Slide 97 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 98

Slide 98 text

HFNP@ ؔ਺܈ DGIUUQTXXXSTUVEJPDPNSFTPVSDFTDIFBUTIFFUT

Slide 99

Slide 99 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 100

Slide 100 text

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

Slide 101

Slide 101 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 102

Slide 102 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 103

Slide 103 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 104

Slide 104 text

まとめ

Slide 105

Slide 105 text

Rを始めよう Rの基礎知識 データ可視化の基礎 □ □ □ ✔ ✔ ✔

Slide 106

Slide 106 text

ࣸ૾ Ϧϯΰ ʢ࣮ଘʣ Ϧϯΰ ʢσʔλʣ mapping

Slide 107

Slide 107 text

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

Slide 108

Slide 108 text

𝑋 𝑌 𝑦! 𝑥! 𝑦" 𝑥" 𝑋 𝑌 𝑥! 𝑥" 𝑦! 𝑦" σʔλՄࢹԽ ࣸ૾ mapping x axis, y axis, color, fill, shape, linetype, alpha… aesthetic channels ৹ඒతνϟωϧ ggplot(data = my_data) + aes(x = X, y = Y)) + goem_point() HHQMPUʹΑΔ࡞ਤ

Slide 109

Slide 109 text

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

Slide 110

Slide 110 text

࣮ଘ ਤ ࣸ૾ʢ؍࡯ʣ ৘ใ ࣸ૾ʢՄࢹԽʣ

Slide 111

Slide 111 text

Enjoy!!