library(ggplot2)この動画では、ggplot2を用いて、グラフを描画する方法について、ここまで解説した知識を用いて演習問題を解いていきます。
まずパッケージを読み込んでおきましょう
あるいは
library(tidyverse)── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.2 ✔ readr 2.1.4
✔ forcats 1.0.0 ✔ stringr 1.5.0
✔ lubridate 1.9.2 ✔ tibble 3.2.1
✔ purrr 1.0.1 ✔ tidyr 1.3.0
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
これで、
diamonds# A tibble: 53,940 × 10
carat cut color clarity depth table price x y z
<dbl> <ord> <ord> <ord> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43
2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31
3 0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31
4 0.29 Premium I VS2 62.4 58 334 4.2 4.23 2.63
5 0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75
6 0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48
7 0.24 Very Good I VVS1 62.3 57 336 3.95 3.98 2.47
8 0.26 Very Good H SI1 61.9 55 337 4.07 4.11 2.53
9 0.22 Fair E VS2 65.1 61 337 3.87 3.78 2.49
10 0.23 Very Good H VS1 59.4 61 338 4 4.05 2.39
# ℹ 53,930 more rows
economics# A tibble: 574 × 6
date pce pop psavert uempmed unemploy
<date> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1967-07-01 507. 198712 12.6 4.5 2944
2 1967-08-01 510. 198911 12.6 4.7 2945
3 1967-09-01 516. 199113 11.9 4.6 2958
4 1967-10-01 512. 199311 12.9 4.9 3143
5 1967-11-01 517. 199498 12.8 4.7 3066
6 1967-12-01 525. 199657 11.8 4.8 3018
7 1968-01-01 531. 199808 11.7 5.1 2878
8 1968-02-01 534. 199920 12.3 4.5 3001
9 1968-03-01 544. 200056 11.7 4.1 2877
10 1968-04-01 544 200208 12.3 4.6 2709
# ℹ 564 more rows
msleep# A tibble: 83 × 11
name genus vore order conservation sleep_total sleep_rem sleep_cycle awake
<chr> <chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
1 Cheet… Acin… carni Carn… lc 12.1 NA NA 11.9
2 Owl m… Aotus omni Prim… <NA> 17 1.8 NA 7
3 Mount… Aplo… herbi Rode… nt 14.4 2.4 NA 9.6
4 Great… Blar… omni Sori… lc 14.9 2.3 0.133 9.1
5 Cow Bos herbi Arti… domesticated 4 0.7 0.667 20
6 Three… Brad… herbi Pilo… <NA> 14.4 2.2 0.767 9.6
7 North… Call… carni Carn… vu 8.7 1.4 0.383 15.3
8 Vespe… Calo… <NA> Rode… <NA> 7 NA NA 17
9 Dog Canis carni Carn… domesticated 10.1 2.9 0.333 13.9
10 Roe d… Capr… herbi Arti… lc 3 NA NA 21
# ℹ 73 more rows
# ℹ 2 more variables: brainwt <dbl>, bodywt <dbl>
等のデータセットが利用できるようになっていると思うので、これらを利用します。
補足しておくと、
?diamondsstarting httpd help server ... done
diamonds:50000個のダイヤモンドのデータ
- price -> 値段(ドル)
- carat -> 重さ
- cut -> カットの質(カテゴリカル変数)
- color -> ダイヤの色(カテゴリカル変数、Jが最低、Dが最高)
- clarity -> ダイヤの透明度(悪い:I1 SI2 SI1 VS2 VS1 VVS2 VVS1 IF 最高。カテゴリカル変数
- x, y, z -> 長さ、幅、深さをミリメートル単位
他のデータセットも、helpの検索を利用すれば詳しい内容を知ることができます。
?economics
?msleepでは、出題していきます。
まず例題を一緒にやりましょう。
例題:ダイヤモンドの長さ(x)と幅(y)の関係を散布図で描画してください。
この例題では、利用するデータはdiamonds,軸に利用する変数は、それぞれxとyです。描画するグラフは散布図のため、使用するgeom関数群の関数はgeom_pointになります。これらをすべて盛り込んだスクリプトは、
ggplot(data = diamonds) +
geom_point(mapping=aes(x=x, y=y))
どうでしょうか?うまく描画できましたか?
たまにある外れ値を除いて直線関係にありそうなグラフですね。
それでは、今の要領で、次の問題Q1-Q6まで解いてみてください。
次の動画で答えを解説いたします。
Q1: ダイヤモンドの重さと値段の関係を、散布図で描画してください。 Q2: ダイヤモンドの色と値段の関係を、箱ひげ図で描画してください。 Q3: ダイヤモンドの透明度と色の関係を、何らかの形で描画してください Q4: ダイヤモンドの値段の分布をヒストグラムにして描画してください Q5: ダイヤモンドのカットの質が分類毎に、このデータセットに何件ずつあるのかを描画してください。 Q6: この問題には、economicsデータを利用します。米国の失業者数の推移を何らかの形で描画してください。
economics:米国の経済データ
- date -> 日付
- unemploy -> 失業者数(千人単位)
- pop -> 人口(千人単位)