R tips 可視化に使えるライブラリ ggplot2

# <font color="DarkSlateBlue">記事の目的</font>
この記事では、可視化によく使用されるライブラリであるggplot2の基本的な使い方を説明します。

# <font color="DarkSlateBlue">目次</font>

<table>
<tr><td>No.<td>目次<td> 説明
<tr><td>1<td><a href="1-使用するライブラリとデータ">使用するライブラリとデータ</a><td> ggplot2 / iris
<tr><td>2<td><a href="#2-基本的な可視化-geom_〇〇">基本的な可視化</a><td> geom_〇〇
<tr><td>3<td><a href="#3-グラフを見やすく-labs-xlim-ylim">グラフを見やすく！</a><td> labs, xlim, ylim
<tr><td>4<td><a href="#4-グラフに色を付ける-fill-color">グラフに色を付ける</a><td> fill, color
<tr><td>5<td><a href="#5-複数のグラフを1つのグラフに表示-geom_〇〇geom_〇〇">複数のグラフを1つのグラフに表示</a><td> geom_〇〇+ geom_〇〇
<tr><td>6<td><a href="#6-複数のグラフを同時に表示-gridextra--gridarrange">複数のグラフを同時に表示</a><td> gridExtra / grid.arrange
</table>

# <font color="LimeGreen">1.</font> <font color="DarkSlateBlue">使用するライブラリとデータ</font>
```R:
library(dplyr)
library(ggplot2)
iris %>% sample_n(5)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/9a3df315-bb83-288e-e61b-15bd548f9ff6.png)

# <font color="LimeGreen">2.</font> <font color="DarkSlateBlue">基本的な可視化 (geom_〇〇)</font>
##1次元 (ヒストグラム、棒グラフ)
```R:
iris %>% ggplot(aes(x=Sepal.Length)) + geom_histogram()
iris %>% ggplot(aes(x=Species)) + geom_bar()
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/755541cb-93a8-2223-2276-32340a85d426.png)

##2次元 (棒グラフ、散布図、折れ線グラフ)
```R:
NULL %>% ggplot(aes(x=c(1,2,3), y=c(10,20,30))) + geom_bar(stat="identity")
iris %>% ggplot(aes(x=Sepal.Length, y=Sepal.Width)) + geom_point()
iris %>% ggplot(aes(x=Sepal.Length, y=Sepal.Width)) + geom_line()
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/7c84c5ec-0423-aad1-19eb-e9421f1d6699.png)

##2次元 -グループ別比較- (箱ひげ図、バイオリンプロット)
```R:
iris %>% ggplot(aes(x=Species, y=Sepal.Length)) + geom_boxplot()
iris %>% ggplot(aes(x=Species, y=Sepal.Length)) + geom_violin()
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/d1d0d80f-1c5a-80e0-0b0c-612f6085daa2.png)

# <font color="LimeGreen">3.</font> <font color="DarkSlateBlue">グラフを見やすく！ (labs, xlim, ylim)</font>
##グラフに名前を付ける (labs)
```R:
iris %>% ggplot(aes(x=Species)) + geom_bar() +
  labs(x="種類", y="個体数", title="種類別の個体数")
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/b867946b-94f2-2d9e-68fb-98d1db8e15b2.png)

##グラフの範囲を設定する (xlim, ylim)
```R:
iris %>% ggplot(aes(x=Sepal.Length, y=Sepal.Width)) + geom_point() +
  xlim(4,8) + ylim(1,5)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/9e43033a-d592-c423-6066-7a383518ce76.png)

# <font color="LimeGreen">4.</font> <font color="DarkSlateBlue">グラフに色を付ける (fill, color)</font>
##1次元 (fill)
```R:
iris %>% ggplot(aes(x=Sepal.Length)) + geom_histogram(fill="red")
iris %>% ggplot(aes(x=Sepal.Length)) + geom_histogram(aes(fill=Species))
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/9d4068da-6a8f-6a00-351e-8b6233ca6141.png)

##2次元 (color)
```R:
iris %>% ggplot(aes(x=Sepal.Length, y=Sepal.Width)) + geom_point(color="blue")
iris %>% ggplot(aes(x=Sepal.Length, y=Sepal.Width)) + geom_line(color="green")
iris %>% ggplot(aes(x=Sepal.Length, y=Sepal.Width)) + geom_point(aes(color=Species))
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/99286c99-309d-b976-a7fe-aacf1e8c3d83.png)

##グラフを薄くする (alpha)
```R:
iris %>% ggplot(aes(x=Sepal.Length)) + geom_histogram(aes(fill=Species, alpha=0.5))
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/0452e97c-dd26-e270-3367-3e533e511e1c.png)


# <font color="LimeGreen">5.</font> <font color="DarkSlateBlue">複数のグラフを1つのグラフに表示 (geom_〇〇+geom_〇〇)</font>
##xが共通の場合
```R:
iris %>% ggplot(aes(x=Sepal.Length)) + geom_point(aes(y=Sepal.Width)) +
  geom_line(aes(y=Sepal.Width)) + 
  geom_histogram(alpha=0.5)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/19a671ed-8512-bbdc-e119-b56a0a2abb67.png)

##バラバラのデータの場合
```R:
iris %>% ggplot() + geom_point(aes(x=Sepal.Length, y=Sepal.Width)) +
  geom_line(aes(x=Petal.Length, y=Petal.Width))
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/dd197ca3-17a9-9db8-42cd-1e87cf30dd45.png)

# <font color="LimeGreen">6.</font> <font color="DarkSlateBlue">複数のグラフを同時に表示 (gridExtra / grid.arrange)</font>
今までに表示した複数のグラフは、この関数を使用していました。

```R:
library(gridExtra)
p1 <- iris %>% ggplot(aes(x=Sepal.Length)) + geom_histogram()
p2 <- iris %>% ggplot(aes(x=Species)) + geom_bar()
grid.arrange(p1, p2, nrow=1)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/775500/ddc7699a-3c4e-0df5-344f-dc69f02f13d0.png)

◯SNS
・youtube
https://youtube.com/channel/UCFDyXEywtNhdtwqC3GAkYuA

・Twitter
https://twitter.com/Dken_ta