[[ggplot2]] では、geom(幾何学的オブジェクト) を重ね合わせることで、多層的なグラフを作成する。これは、レイヤーを重ねて 1 つの絵を完成させるのと似ており、1 つのグラフに複数の geom を追加することで、データの関係性やパターンをより詳しく見ることができる。 ## geom の段階的な構築 ### 1. 座標軸の設定 ```r ggplot(mtcars, aes(wt, mpg)) # 座標軸を設定 ``` ![[ggplot2-geom-layers-1-axes.png]] この段階では、データと aesthetic の設定のみが行われ、まだ何も描画されていない。 ### 2. 散布図の追加 ```r ggplot(mtcars, aes(wt, mpg)) + geom_point() # 散布図を追加 ``` ![[ggplot2-geom-layers-2-point.png]] `ggplot2::geom_point()` により、各データポイントが点として表示され、重量と燃費の関係が視覚化された。 ### 3. 回帰線の追加 ```r ggplot(mtcars, aes(wt, mpg)) + geom_point() + geom_smooth(method = "lm", se = FALSE) # 回帰線を追加 ``` ![[ggplot2-geom-layers-3-smooth.png]] `ggplot2::geom_smooth()` で回帰線が追加され、データの全体的な傾向が明確になった。 ### 4. データ分布の追加 ```r ggplot(mtcars, aes(wt, mpg)) + geom_point() + geom_smooth(method = "lm", se = FALSE) + geom_rug() # データ分布を追加 ``` ![[ggplot2-geom-layers-4-rug.png]] `ggplot2::geom_rug()` により軸の端にデータ分布が表示され、値の密集具合も把握できるようになった。 ## 関連ノート - **[応用]** [[ggplot2 の棒グラフは用途に応じて geom_col() と geom_bar() を使い分ける]]: 本ノートの geom 概念を棒グラフに具体化した代表例 - **[派生]** [[ggplot2 のエステティック属性は、aes() 内では変数を、外では定数を指定する]]: geom を具体的に扱う際に押さえる周辺知識