64  軸の設定方法(解答)

── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.2     ✔ readr     2.1.4
✔ forcats   1.0.0     ✔ stringr   1.5.0
✔ ggplot2   3.4.2     ✔ tibble    3.2.1
✔ lubridate 1.9.2     ✔ tidyr     1.3.0
✔ purrr     1.0.1     
── 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

それでは、1つ前の動画で出題した問題を解説していきます。

Q1: ダイヤモンドの重さと値段の関係を、散布図で描画してください。

データ:diamonds geom:geom_point ->x軸:carat  ->y軸:price

ggplot(data = diamonds) + 
  geom_point(mapping = aes(x = carat, y = price))

Q2: ダイヤモンドの色と値段の関係を、箱ひげ図で描画してください。

データ:diamonds geom:geom_boxplot ->x軸:color  ->y軸:price

ggplot(data =diamonds) +
  geom_boxplot(mapping = aes(x = color, y = price))

Q3: ダイヤモンドの透明度と色の関係を、何らかの形で描画してください

データ:diamonds geom: ??? ->x軸:clarity  ->y軸:color

ここでは、x軸とy軸がそれぞれカテゴリカル変数 なので、これまでお伝えした関数の中で利用できる geomはgeom_countです。

gdia <- ggplot(data = diamonds)
gdia + geom_count(aes(clarity, color))

他にも、カテゴリカル×カテゴリカルで利用できる geomは、geom_jitterというものがあり、

gdia + geom_jitter(aes(clarity, color))

こんな感じで、gdiaという変数を作っておくと、 別のgeomを適応する場合も、それほど手間なく 描画できます。

今回、jitterが見やすいとは思いませんが、 それぞれのカテゴリに含まれる数がそれほど 多くない場合に、どれくらいのデータの個数が 含まれているかを直観的に把握できるので、 覚えておいてもよいかもしれません。

Q4: ダイヤモンドの値段の分布を ヒストグラムにして描画してください

データ:diamonds geom: geom_histogram ->x軸:price ->y軸:集計

gdia + geom_histogram(aes(price))
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Argumentから全部書き出すとこんな感じです:

ggplot(data = diamonds) + 
  geom_histogram(mapping = aes(x = price))
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Q5: ダイヤモンドのカットの質が分類毎に、このデータセットに何件ずつあるのかを描画してください。

データ:diamonds geom:geom_bar ->x軸:cut  ->y軸:集計

gdia + geom_bar(aes(cut))

summary(diamonds$cut)
     Fair      Good Very Good   Premium     Ideal 
     1610      4906     12082     13791     21551 

直接集計結果をsummary関数などで見た方が正確な数字わかりますが、geom_bar関数で集計されていること、みていただけるかと思います。

Q6: この問題には、economicsデータを利用します。米国の失業者数の推移を何らかの形で描画してください。

データ:economics geom:??? ->x軸:date  ->y軸:unemploy

ここでは、x軸はdateという日付型の変数です。日付型の変数はまだ解説していませんが、現時点では連続変数の一種であるというような理解でOKです。

推移を表現するので、利用できるgeomにはgeom_line等を使ってみましょう。

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
g_eco <- ggplot(economics) 
  
g_eco + geom_line(aes(date, unemploy))

他にも、点を打つだけでも大丈夫かもしれません

g_eco + geom_point(aes(date, unemploy))

以上、ggplot+geom_xxxの基本的な形の解説と演習でした。

次の動画からは第3、第4の軸、色や形の設定などについて解説していきます。