14/ 可視化(3)
関西大学総合情報学部
すぐに実習できるように準備しておきましょう。
geom_col()geom_histogram()geom_boxplot()geom_point()geom_line()散布図を作成する際に必要な最低限の情報
データにフリーダムハウス・スコアと人間開発指数の列が必要
x: 点の横軸上の位置
y: 点の縦軸上の位置

第9回実習用データ(countries.csv)を使用
幾何オブジェクトはgeom_point()を使用
ラベル修正 / 必要に応じてカスタマイズ
散布図における次元の追加
colorsizeshapealphacolor)を推奨するが、白黒の図を作成する場合は形(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でなく、linetypealpha: 透明度linetypeの見本種類が多くなると区別しにくいため、最大3つ程度

geom_point()とgeom_line()を重ねる

変数の分布を示す方法の一つ
変数の分布をグループごとに見る時に有効

人間開発指数 (HDI_2018) の箱ひげ図
x、またはyに分布を確認した変数をマッピングする
xにマッピングするか、yにするかによって箱の向きが変わるyにしかマッピングされているため、まだ次元追加の余地が残っている
xにマッピング(大陸ごとのHDI_2018の箱ひげ図)箱の色を変える
aes()の外側にfillaes()の内側にfill

aes()の外側にwidthを指定箱が多すぎて読みにくい場合、xとyを交換も良い