pandasでの棒グラフ表示（基礎編）


# やりたいこと

* pandasでCSVデータを読み込んで棒グラフを表示したい。
* グラフの色やサイズも自由にカスタムしたい。
* 基本操作の習得が目的であるため、データセットは自作したシンプルな内容を扱う。
* ここでは、データの「集計」ではなく「可視化」が目的なので、groupbyなどは使わない。

# 前提

* jupyterの環境が構築済みであること。
* 必要なpythonライブラリをインストール済みであること。


# 公式ドキュメント

pandas公式ドキュメント。plot.barの仕様。

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.bar.html

# CSVデータセット

### sample.csv

自作した架空データ。
酒類を販売する会社の売り上げを示す。
ビールと日本酒の月別売り上げ金額（億円）。
たとえば2月は、ビール（beer）を431億円、日本酒（sake）を267億円、売り上げた。

```csv
month,beer,sake
1,1024,667
2,431,267
3,341,166
4,530,461
5,482,367
6,339,331
7,1203,227
8,1376,312
9,896,211
10,754,361
11,561,325
12,938,452
```

以下、pythonでの実装。

# ライブラリをインポートする

```python
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
```

# CSVを読み込む

```
df = pd.read_csv('csv/sample.csv')
```
dfの中身は下記。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75451/5c30a0a4-e172-1dcb-82a1-3d31611877d5.png)


# 月別のビールの売り上げを表示する


```python
df.plot.bar('month', 'beer')
```

横軸が「月」で、縦軸が「ビールの売り上げ金額（億円）」となる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75451/3be2c931-f61d-7836-741c-3d9243534854.png)


* 8月の売り上げが最も多い（1376億円である）ことが分かる。



# 月別の日本酒の売り上げを表示する



```python
df.plot.bar('month', 'sake')
```



横軸が「月」で、縦軸が「日本酒の売り上げ金額（億円）」となる。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75451/d6b5b962-1303-9491-8fed-1c8d9b28d995.png)

* 1月の売り上げが最も多い（667億円である）ことが分かる。




# 月別の「ビールと日本酒の売り上げ」を表示する


```python
df.plot.bar('month',{'beer','sake'} )
```

横軸が「月」で、縦軸が「ビール（青）と日本酒（オレンジ）の売り上げ金額（億円）」となる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75451/d122aecd-cb3b-8b9a-f29e-54576f676f77.png)


下記が分かる。

* ビールの売り上げ最多は8月だが、日本酒の売り上げ最多は1月である。
* 日本酒よりもビールのほうが売り上げ金額が大きい。



# 月別の「ビールと日本酒の売り上げ」を表示する（積み上げ）

`stacked=True` を付けると積み上げグラフになる。

```python
df.plot.bar('month',{'beer','sake'}, stacked=True)
```


横軸が「月」で、縦軸が「ビール（青）と日本酒（オレンジ）の売り上げ金額（億円）」（積み上げ）となる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75451/a901a981-d9b8-db9b-bf61-0d0b7fc3a927.png)


下記が分かる。

* ビールと日本酒を合計して、もっとも売れるのは1月と8月である。
* 日本酒よりもビールのほうが総売り上げに対する比率が高い。


# 棒の色を変更する

* ビールは赤色、日本酒は緑色、にしたい場合。

```python
df.plot.bar(
  'month',{'beer','sake'},
   color={"beer": "red", "sake": "green"}
)
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75451/7fd5dfc6-78b3-79eb-c37e-9aa4e7e8b79f.png)

### 積み上げ

```python
df.plot.bar(
  'month',{'beer','sake'},
   color={"beer": "red", "sake": "green"},
   stacked=True
)
```


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75451/dee981aa-86d2-0783-6649-23f6ac767a76.png)




# グラフ表示領域のサイズを拡大縮小する

`figsize` で指定する。


## figsize=(5,5)

```python
df.plot.bar(
  'month',{'beer','sake'},
  figsize=(5,5)
)
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75451/885aef59-cf66-3b98-fb31-d931b77e38b8.png)



## figsize=(8,5)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75451/09f905a3-9186-3b28-9efa-3ae6b8750100.png)


## figsize=(5,10)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75451/8144e991-95e7-5f49-b7a4-43b7363f2876.png)