apps:r:ggplot2
ggplot2 {R}
- Grammer of Graphics による記載.
- グラフの要素を重ねるようにして記載していく
- データ,グラフの形,軸をそれぞれ指定する
グラフの形の指定方法
geom_density() | 密度 |
geom_histogram() | ヒストグラム |
geom_boxplot() | 箱ひげ図 |
geom_bar() | 棒グラフ(データのカウントをする) |
geom_col() | 棒グラフ(データの数を集計させず生データのまま縦軸にする) |
geom_point() | 散布図 |
geom_jitter() | 重なる点を横に広げる |
軸ラベルの指定方法
+ labs("タイトルラベル", "X軸ラベル", "Y軸ラベル")
- 具体例
ggplot(msleep, aes(X, Y) + #ggplotで読み込むデータセット,x軸,y軸指定 geom_point(aes(shape=Z, color=Z)) + #散布図を指定,形と色を決める変数も指定 labs(title = "XとYの関係", #タイトルの指定 x = "X[(kg)]", #x軸ラベルの指定 y = "Y[時間]") #y軸ラベルの指定
軸ラベルを回転させて重ならなくする
- X軸が長すぎる名前のときなど,以下のように回転させれば解決できる
+scale_x_discrete(guide = guide_axis(angle=45))
凡例の編集
- 凡例 = Legend
- 凡例ラベルは以下のようにして指定する
scale_color_discrete( name ="その凡例ラベルの名前" #diamond の例であれば clarity など labels ="それぞれのカテゴリに対応した名前" #clarity だと I1,SI2,SI1,VS2,VS1,VVS2,VVS1,IFの7段階 breaks ="上記のカテゴリのレベル" #どの順で提示するかを指定する )
- colorではなくfillを使って凡例表示をしているときは,
scale_fill_discrete()
凡例ラベルを削除する
- guide=FALSE を入れれば凡例ラベル自体を消すことも可能
+ scale_fill_discrete(guide = FALSE)
Themeを指定する
+theme_bw() +theme_classic() +theme_dark() +theme_gray() +theme_light() +theme_linedraw() +theme_minimal()
- 色々見た目があるので,好きにいじればよい
- themeは最後の行の実行で上書きしていくスタイルになるので,上記のような固定テーマは最初に指定した上で,凡例の位置を調整するとよい
- 逆パターンだと,凡例ラベルの位置を調整しても,固定テーマによって所定の位置に上書きされる
- パッケージで “ggthemes” を入れると,さらに選択の幅が広がる
install.packages("ggthemes") library(ggthemes)
凡例の位置を調整する
+ theme(legend.position = "bottom") #凡例を下に + theme(legend.position = "right") #凡例を右に(初期設定) + theme(legend.position = "top") #凡例を上に + theme(legend.position = "left") #凡例を左に
+ theme(legend.position = c(1,1)) #凡例を右上に + theme(legend.position = c(0.5,0.5)) #凡例をグラフのど真ん中に(邪魔) + theme(legend.position = c(0,0)) #凡例を左下に
具体例
- 以下は具体的なコード
散布図の具体例
- 初めから入っている “diamonds” のデータセットを用いる
- 以下のようにすればX軸にカラット数,Y軸に値段,色をダイヤのカラーで指定できる
- aes は aesthtetic に由来する
ggplot(data = diamonds) + geom_point( mapping = aes(x = carat,y = price,color = color) )
- 同じことは以下のようにも指定できる
gg <- ggplot(diamonds, aes(carat, price)) gg + geom_point(aes(color = cut))
- なお散布図などでは,shape=() を使うことでプロットの点を分類することも可能
- factor型の変数に用いることを推奨(形の種類は限られるため)
箱ひげ図
- ダイアモンドの色と値段の関係を箱ヒゲ図にする場合,以下のようにする
gg <- ggplot(diamonds, aes(color, price)) gg + geom_boxplot(aes(fill=clarity, color = clarity))
- fillは箱の塗りつぶし,colorは外枠の色.同じもので指定すれば塗りつぶしになる
apps/r/ggplot2.txt · 最終更新: 2023/10/16 by admin