第14回 可視化(3)
関西大学総合情報学部
2024-07-11
すぐに実習できるように準備しておきましょう。
Data
フォルダーを作成し、そこにアップロードしましょう。.html
形式)
geom_col()
geom_histogram()
geom_boxplot()
geom_point()
geom_line()
散布図を作成する際に必要な最低限の情報
データにフリーダムハウス・スコアと人間開発指数の列が必要
x
: 点の横軸上の位置
y
: 点の縦軸上の位置
第9回実習用データ(countries.csv
)を使用
幾何オブジェクトはgeom_point()
を使用
ラベル修正 / 必要に応じてカスタマイズ
散布図における次元の追加
color
size
shape
alpha
color
)を推奨するが、白黒の図を作成する場合は形(shape
)を使う。各点はフリーダムハウス・スコア、人間開発指数、人口(対数変換)、大陸、OECD加盟有無の情報を持つ
df |>
mutate(OECD = if_else(OECD == 1, "Member", "Non-member")) |>
ggplot() +
geom_point(aes(x = FH_Total, y = HDI_2018, color = Continent,
size = Population, shape = OECD), alpha = 0.65) +
scale_size_continuous(trans = "log10") +
labs(x = "Freedom House Score", y = "Human Development Index (2018)",
size = "Population (log)") +
theme_gray()
aes()
の内部にcolor = 色分けする変数
を指定
HighIncome
変数を作成し、PPP_per_capita
が2万以上なら"高"
、未満なら"低"
HighIncome
値に応じて点の色分けを行う(color = HighIncome
)aes()
の外側に指定)labs()
内で凡例タイトルを修正; 凡例を下側へ移動scatter_plot1 <- df |>
drop_na(FH_Total, HDI_2018, PPP_per_capita) |>
mutate(HighIncome = if_else(PPP_per_capita >= 20000, "高", "低")) |>
ggplot() +
geom_point(aes(x = FH_Total, y = HDI_2018, color = HighIncome),
size = 2) +
labs(x = "フリーダムハウス・スコア", y = "人間開発指数 (2018)",
color = "一人当たりPPP GDP") +
theme(legend.position = "bottom")
color
にマッピングされている変数(HighIncome
)が離散変数
scale_color_manual()
を使用(引数はvalues = c("値1" = "色1", "値2" = "色2", ...)
)"red"
、"blue"
、"royalblue"
など(全657種類)"#FF0000"
: 赤、"#4169E1"
: ロイヤルブルーshape
の見本shape
で指定(デフォルトはshape = 19
)
color
、グレーの部分はfill
(またはbg
)で調整
color
、内側の色塗りはfill
折れ線グラフを作成する際に必要な最低限の情報
データに日と新規感染者数の列が必要
x
: 線の傾きが変化し得る点の横軸上の位置
y
: 線の傾きが変化し得る点の縦軸上の位置
groups
が必要
授業サポートページから実習用データ(covid_2022_06.csv
)をダウンロード
Day
: 日付(2022年6月); NewCases
: 100万人当りCOVID-19新規感染者数# A tibble: 15 × 3
Country Day NewCases
<chr> <dbl> <dbl>
1 Japan 23 132.
2 Japan 24 127.
3 Japan 25 132.
4 Japan 26 113.
5 Japan 27 76.0
6 Korea 23 140.
7 Korea 24 132.
8 Korea 25 122.
9 Korea 26 66.8
10 Korea 27 192.
11 Taiwan 23 2022.
12 Taiwan 24 1913.
13 Taiwan 25 1689.
14 Taiwan 26 1658.
15 Taiwan 27 1196.
geom_line()
幾何オブジェクトを使用
x
: 点の傾きが変化し得る点の横軸上の位置y
: 点の傾きが変化し得る点の縦軸上の位置折れ線グラフを作成する際、以下のようなエラーメッセージが表示され、グラフが出力されない場合がある。
geom_path: Each group consists of only one observation. Do you need to adjust the group aesthetic?
【解決策】 このようなメッセージが出た場合は、aes()
の中にgroup = 1
を追加すると解決できる。
group
に線のグループ変数を指定
COVID_df <- COVID_df |>
mutate(Country = case_when(Country == "Japan" ~ "日本",
Country == "Korea" ~ "韓国",
TRUE ~ "台湾"),
Country = factor(Country, levels = c("日本", "韓国", "台湾")))
COVID_df |>
ggplot() +
geom_line(aes(x = Day, y = NewCases, group = Country)) +
labs(x = "日 (2022年6月)", y = "100万人当たり新規感染者数 (人)")
各線がどの国を示すのかが分からない…
color
で色分け: 国別の折れ線グラフの場合、国変数を指定
多くの折れ線グラフは既に3次元
x
)、新規感染者数(y
)、国(group
or color
)linewidth
: 線の太さlinetype
: 線のタイプ(1 = 実線、2 = 破線、3 = 点線、…)
color
でなく、linetype
alpha
: 透明度linetype
の見本種類が多くなると区別しにくいため、最大3つ程度
geom_point()
とgeom_line()
を重ねる
変数の分布を示す方法の一つ
変数の分布をグループごとに見る時に有効
人間開発指数 (HDI_2018
) の箱ひげ図
x
、またはy
に分布を確認した変数をマッピングする
x
にマッピングするか、y
にするかによって箱の向きが変わるy
にしかマッピングされているため、まだ次元追加の余地が残っている
x
にマッピング(大陸ごとのHDI_2018
の箱ひげ図)箱の色を変える
aes()
の外側にfill
aes()
の内側にfill
aes()
の外側にwidth
を指定箱が多すぎて読みにくい場合、x
とy
を交換も良い