Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TokyoR109.pdf

kilometer
October 07, 2023

 TokyoR109.pdf

第109回Tokyo.Rでトークした際のスライド資料です。

kilometer

October 07, 2023
Tweet

More Decks by kilometer

Other Decks in Programming

Transcript

  1. #109
    @kilometer00
    2023.10.07
    Data Visualization in R

    View full-size slide

  2. Who!?
    Who?

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  6. @kilometer00
    Data Visualization in R

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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



    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  27. 実⾏(⌘↩)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  31. の基本 CRAN
    The Comprehensive R Archive Network
    packages

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  44. 😇
    できた

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  47. 基礎知識1
    data.frame

    View full-size slide

  48. ベクトル (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

    View full-size slide

  49. リスト (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

    View full-size slide

  50. 名前付きリスト (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

    View full-size slide

  51. データフレーム (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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  56. 横⻑データ (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

    View full-size slide

  57. 縦⻑データ (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

    View full-size slide

  58. 横⻑→縦⻑データ (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"
    )

    View full-size slide

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





    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  74. ࣮ଘ

    ࣸ૾ʢ؍࡯ʣ
    ৘ใ
    ࣸ૾ʢՄࢹԽʣ

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  77. Ϧϯΰ
    ࣸ૾
    ϑϧʔπ
    ੺৭

    ը૾

    ࣮ଘ σʔλ
    νϟωϧ
    mapping
    channel

    View full-size slide

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

    View full-size slide

  79. ࣮ଘ

    ࣸ૾ʢ؍࡯ʣ
    ৘ใ
    ࣸ૾ʢՄࢹԽʣ

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  83. 初めての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)
    )

    View full-size slide

  84. 初めての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)を指定できる

    View full-size slide

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

    View full-size slide

  86. ॳΊ͔ͯΒ൪໨ͷHHQMPU

    View full-size slide

  87. 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
    ؔ਺ͷ֎ʹஔ͘͜ͱ΋Ͱ͖Δ

    View full-size slide

  88. 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Λࢦఆ

    View full-size slide

  89. 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))
    ͋ͱ͔ΒͰॏͶͨཁૉ͕લ໘ʹඳը͞ΕΔ

    View full-size slide

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

    View full-size slide

  91. 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)
    αΠζ͸σϑΥϧτͰ͸Πϯν୯ҐͰࢦఆ

    View full-size slide

  92. 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"を指定可能

    View full-size slide

  93. HFNP@
    ؔ਺܈ DGIUUQTXXXSTUVEJPDPNSFTPVSDFTDIFBUTIFFUT

    View full-size slide

  94. ෳ਺ͷܥྻΛඳը͢Δ
    > 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")
    ͜Ε·Ͱͷ஌ࣝͰؤுΔͱ͜͏ͳΔ

    View full-size slide

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

    View full-size slide

  96. > 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࣠ ৭
    ʹରԠ͢Δม਺ʹͳΔΑ͏มܗ
    ݟ௨͠ྑ͘γϯϓϧʹՄࢹԽͰ͖Δ

    View full-size slide

  97. > 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 = "(.)(.)")
    ԣ௕σʔλ
    ॎ௕σʔλ

    View full-size slide

  98. 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)
    ਫ४ͰਤΛ෼ׂ͢Δ

    View full-size slide

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






    View full-size slide

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

    View full-size slide

  101. Ϧϯΰ
    ࣸ૾
    ϑϧʔπ
    ੺৭

    ը૾

    ࣮ଘ σʔλ
    νϟωϧ
    mapping
    channel

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  104. ࣮ଘ

    ࣸ૾ʢ؍࡯ʣ
    ৘ใ
    ࣸ૾ʢՄࢹԽʣ

    View full-size slide