# ============================================================
# 行動計量学（行動科学分析法入門）
# 第4回　データの可視化(2)　演習1〜3　模範解答
#
# 使い方：このファイルを開き，全選択（Ctrl + A）してから
#   Ctrl + Enter（Macは Cmd + A → Cmd + Enter）で実行してください。
#   図は Plots タブの左右の矢印でさかのぼれます。
#
# ※ 色・テーマ・文言は，これでなければならないものではありません。
# ============================================================

library(tidyverse)


# ------------------------------------------------------------
# 演習1：テーマの比較
#   第3回で作ったグラフに theme_classic() と theme_bw() を当てて見比べる
# ------------------------------------------------------------

# 比べるときは，テーマ以外を同じにしておくのがこつです。
# 共通部分を1つ作っておけば，あとはテーマを足すだけで比較できます。
p_base <- ggplot(data = iris,
                 aes(x = Petal.Length, y = Petal.Width, color = Species)) +
  geom_point() +
  labs(title = "花びらの長さと幅の関係",
       x = "花びらの長さ (cm)", y = "花びらの幅 (cm)", color = "種")

p_base + theme_classic()
p_base + theme_bw()

# 違いは次のとおりです。
#   theme_classic() … 枠線なし，目盛線なし。軸の線だけが残る
#   theme_bw()      … 外枠あり，うすい目盛線あり
# どちらが見やすいかは目的によります。
#   値を読み取ってほしい図（目盛線が助けになる）    → theme_bw()
#   傾向だけを見せたい図（線が少ないほうがすっきり） → theme_classic()
# 「どちらが正解」ではなく，理由を言えることが大事です。


# ------------------------------------------------------------
# 演習2：論文用グラフの作成
# ------------------------------------------------------------

p2 <- ggplot(data = iris, aes(x = Species, y = Petal.Length, fill = Species)) +
  geom_boxplot() +
  scale_fill_brewer(palette = "Set2") +
  labs(title = "種ごとの花びらの長さ",
       x = "種",
       y = "花びらの長さ (cm)",
       fill = "アヤメの種") +
  theme_bw() +
  theme(legend.position = "bottom")

p2

# 凡例について：
#   x軸にすでに種名が出ているので，この図の凡例は情報が重複しています。
#   論文なら legend.position = "none" で消してしまうのも正解です。
#   ここでは「位置を指定できること」を確かめるのが目的なので bottom にしました。


# ------------------------------------------------------------
# 演習3：グラフの保存
#   kadai_02.png（dpi = 300，幅 7インチ，高さ 5インチ）
# ------------------------------------------------------------

ggsave("kadai_02.png", plot = p2, width = 7, height = 5, dpi = 300)

# 保存先は「いま作業しているフォルダ」です。どこかは getwd() で確認できます。
getwd()

# 7インチ × 300dpi = 2100ピクセル，5インチ × 300dpi = 1500ピクセル。
# つまり 2100 × 1500 の画像ができます。
