Rを使用したグラフ描画のパターン

### 描画したグラフのパターン

- hist
- hist+geom_density
- 散布図
- 散布図+箱ひげ図
- 散布図+ gghighlights
- 折れ線
- facet_wrap

iscs<-InsectSprays
#### hist
##### hist+geom_density
```
iscs%>%
        ggplot()+
        geom_histogram(aes(x=count,y=..density..,fill=spray),bins=30,alpha=0.5,position='identity')+
        # sprayごとに異なる色を付ける。線の太さは1、凡例には表示させない
        geom_density(aes(x=count,y = ..density..,color = spray), size = 1,
                     show.legend = FALSE) 
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1347377/6b67f0a5-a7f7-4a03-fe71-39d19f968509.png)

#### 散布図
##### 散布図+箱ひげ図
```
# ヒストグラムの方が情報はあるので今回はヒストグラムでいいが、こちらの方が見やすいっちゃ見やすい

iscs%>%
ggplot()+
geom_point(aes(x=spray,y=count,color=spray))+
geom_boxplot(aes(x=spray,y=count,color=spray),alpha=0.3)
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1347377/7b08fd3f-7cce-dfa0-186b-26ecc0537f3c.png)

##### 散布図 + gghighlights
```
# gghighlightによる日本と中国のハイライト。
# Color属性を設定すればラベルが出てくる
lcs<-LifeCycleSavings
rownames(lcs)
lcs <- cbind(Country = rownames(lcs), lcs)
rownames(lcs) <- 1:nrow(lcs)
lcs%>%
ggplot()+
geom_point(aes(x=sr,y=dpi,color=Country)) +
gghighlight(Country %in% c("Japan","China"),
    label_params = list(size = 3)) +
labs(x = "sr", y = "dpi")
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1347377/245f3329-1c44-9e37-70bc-c0a072eccb3a.png)

#### 折れ線
- covid19データセットを使用。
```
covid19<-read.csv('newly_confirmed_cases_daily.csv',fileEncoding="UTF-8-BOM")
str(covid19)
covid19<-covid19%>%
  mutate(Date = as.Date(Date))
```

```
# 東京の新規感染者数
covid19 %>%
  filter(Prefecture == "Tokyo") %>%
  ggplot() +
  geom_line(aes(x=Date,y=Newly.confirmed.cases),) +
  scale_y_continuous(breaks = seq(0, 10000, 1000),
                     labels = seq(0, 10000, 1000)) +
  labs(x='月',y='新規感染者数')
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1347377/99e66233-b195-53ec-20e8-5519cdc93c85.png)


```
# 東京だけでなく県別に見たい

covid19 %>%
  ggplot() +
  geom_line(aes(x=Date,y=Newly.confirmed.cases,group=Prefecture),) +
  scale_y_continuous(breaks = seq(0, 10000, 1000),
                     labels = seq(0, 10000, 1000)) +
  labs(x='月',y='新規感染者数')
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1347377/ff4157bd-db3e-8614-20a8-a358dc674645.png)

```
# colorを指定するだけで勝手にgrouping以上の役割を果たしてくれる。
# groupよりcolorを使うべきか？
covid19 %>%
  ggplot() +
  geom_line(aes(x=Date,y=Newly.confirmed.cases,color=Prefecture),) +
  scale_y_continuous(breaks = seq(0, 10000, 1000),
                     labels = seq(0, 10000, 1000)) +
  labs(x='月',y='新規感染者数')
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1347377/e610f659-1044-dc27-7b10-980140badb41.png)


```
# 47都道府県も見ることは現実的にないので見る対象を絞る
Kanto <- c("Tokyo", "Saitama", "Chiba", "Gunma")
covid19 %>%
  filter(Prefecture %in% Kanto) %>%
  ggplot() +
  geom_line(aes(x=Date,y=Newly.confirmed.cases,color=Prefecture),) +
  scale_y_continuous(breaks = seq(0, 10000, 1000),
                     labels = seq(0, 10000, 1000)) +
  labs(x='月',y='新規感染者数')
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1347377/d57a7e61-721f-34c8-c3da-e99b08d88248.png)


```
# gghighlightが一番使いやすいか
Kanto<-c("Tokyo", "Saitama", "Chiba", "Gunma")
covid19 %>%
  filter(Prefecture != "ALL") %>%
  ggplot() +
  geom_line(aes(x=Date,y=Newly.confirmed.cases,color=Prefecture),) +
  gghighlight(Prefecture %in% Kanto,
              label_params = list(size = 4)) +
  scale_y_continuous(breaks = seq(0, 10000, 1000),
                     labels = seq(0, 10000, 1000)) +
  labs(x='月',y='新規感染者数')
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1347377/38d34cc7-ff9b-0180-c93a-12586b87409f.png)





<details><summary>全コード</summary><div>

# hist
# hist+geom_density
# 散布図
# 散布図+箱ひげ図
# 散布図+ gghighlights
# 折れ線

# facet_wrap

iscs<-InsectSprays

# hist:
iscs%>%
  ggplot()+
  geom_histogram(aes(x=count,y=..density..,fill=spray),bins=30,alpha=0.5,position='identity')+
  # sprayごとに異なる色を付ける。線の太さは1、凡例には表示させない
  geom_density(aes(x=count,y = ..density..,color = spray), size = 1,
               show.legend = FALSE) 

# 散布図
# 散布図+箱ひげ図
# ヒストグラムの方が情報はあるので今回はヒストグラムでいいが、こちらの方が見やすいっちゃ見やすい
iscs%>%
ggplot()+
geom_point(aes(x=spray,y=count,color=spray))+
geom_boxplot(aes(x=spray,y=count,color=spray),alpha=0.3)


# gghighlightによる日本と中国のハイライト。
# Color属性を設定すればラベルが出てくる
lcs<-LifeCycleSavings
rownames(lcs)
lcs <- cbind(Country = rownames(lcs), lcs)
rownames(lcs) <- 1:nrow(lcs)
lcs%>%
ggplot()+
geom_point(aes(x=sr,y=dpi,color=Country)) +
gghighlight(Country %in% c("Japan","China"),
    label_params = list(size = 3)) +
labs(x = "sr", y = "dpi")


# 折れ線
covid19<-read.csv('newly_confirmed_cases_daily.csv',fileEncoding="UTF-8-BOM")
str(covid19)
covid19<-covid19%>%
  mutate(Date = as.Date(Date))

# 東京の新規感染者数
covid19 %>%
  filter(Prefecture == "Tokyo") %>%
  ggplot() +
  geom_line(aes(x=Date,y=Newly.confirmed.cases),) +
  scale_y_continuous(breaks = seq(0, 10000, 1000),
                     labels = seq(0, 10000, 1000)) +
  labs(x='月',y='新規感染者数')


# 東京だけでなく県別に見たい
covid19 %>%
  ggplot() +
  geom_line(aes(x=Date,y=Newly.confirmed.cases,group=Prefecture),) +
  scale_y_continuous(breaks = seq(0, 10000, 1000),
                     labels = seq(0, 10000, 1000)) +
  labs(x='月',y='新規感染者数')


# colorを指定するだけで勝手にgrouping以上の役割を果たしてくれる。
# groupよりcolorを使うべきか？
covid19 %>%
  ggplot() +
  geom_line(aes(x=Date,y=Newly.confirmed.cases,color=Prefecture),) +
  scale_y_continuous(breaks = seq(0, 10000, 1000),
                     labels = seq(0, 10000, 1000)) +
  labs(x='月',y='新規感染者数')


# 47都道府県も見ることは現実的にないので見る対象を絞る
Kanto <- c("Tokyo", "Saitama", "Chiba", "Gunma")
covid19 %>%
  filter(Prefecture %in% Kanto) %>%
  ggplot() +
  geom_line(aes(x=Date,y=Newly.confirmed.cases,color=Prefecture),) +
  scale_y_continuous(breaks = seq(0, 10000, 1000),
                     labels = seq(0, 10000, 1000)) +
  labs(x='月',y='新規感染者数')



# gghighlightが一番使いやすいか
Kanto<-c("Tokyo", "Saitama", "Chiba", "Gunma")
covid19 %>%
  filter(Prefecture != "ALL") %>%
  ggplot() +
  geom_line(aes(x=Date,y=Newly.confirmed.cases,color=Prefecture),) +
  gghighlight(Prefecture %in% Kanto,
              label_params = list(size = 4)) +
  scale_y_continuous(breaks = seq(0, 10000, 1000),
                     labels = seq(0, 10000, 1000)) +
  labs(x='月',y='新規感染者数')


</div></details>