データ可視化：Microsoftのデータサイエンス講座：Day3

# はじめに

　Microsoftが無償で提供しているデータサイエンス初心者向け講座の三日目はデータ可視化にチャレンジします。

# 対象読者

　Python好き。

# ロードマップ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409610/aa0551c6-53cf-c63c-720a-c122e13d5253.png)

https://github.com/microsoft/Data-Science-For-Beginners/raw/main/sketchnotes/09-Visualizing-Quantities.png

#  Day3-1

## Day3ゴール

birdsについてデータ可視化しながらmatplotlibに慣れる。


## git(rawデータ)からbirds.csvを取得しDataFrameに格納する。

```Python

import pandas as pd

df = pd.read_csv("https://raw.githubusercontent.com/microsoft/Data-Science-For-Beginners/main/data/birds.csv")
df.head()

```

## 鳥たちの最大の翼幅をプロット

```Python

wingspan = df['MaxWingspan'] 
wingspan.plot()

```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409610/21cb23ba-45a0-93a3-d740-6747a353af69.png)


## センチメートルに直す。

```Python

import matplotlib.pyplot as plt
plt.title('Max Wingspan in Centimeters')
plt.ylabel('Wingspan (CM)')
plt.xlabel('Birds')
plt.xticks(rotation=45)
x = df['Name'] 
y = df['MaxWingspan']

plt.plot(x, y)

plt.show()

```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409610/617d16b5-1c31-c30b-6b58-85eca09c1d0e.png)



## 最大500cm(5m)を超える翼を持つ鳥を名前をつけてプロット

```Python

plt.title('Max Wingspan in Centimeters')
plt.ylabel('Wingspan (CM)')
plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False)

for i in range(len(ｄｆ)):
    x = ｄｆ['Name'][i]
    y = ｄｆ['MaxWingspan'][i]
    plt.plot(x, y, 'bo')
    if ｄｆ['MaxWingspan'][i] > 500:
        plt.text(x, y * (1 - 0.05), ｄｆ['Name'][i], fontsize=12)
    
plt.show()
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409610/4e72d308-c465-9d13-3c77-c6730acef67f.png)


## Bald Eagleとthe Prairie Falconを除外してプロット

```Python

plt.title('Max Wingspan in Centimeters')
plt.ylabel('Wingspan (CM)')
plt.xlabel('Birds')
plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False)
for i in range(len(ｄｆ)):
    x = ｄｆ['Name'][i]
    y = ｄｆ['MaxWingspan'][i]
    if ｄｆ['Name'][i] not in ['Bald eagle', 'Prairie falcon']:
        plt.plot(x, y, 'bo')
plt.show()
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409610/22498114-10eb-e093-97f3-74e4836a7036.png)

## 積み上げ棒グラフ

```Python

df.plot(x='Category',
        kind='bar',
        stacked=True,
        title='Birds of Minnesota')
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409610/836c62cd-045b-4ef7-2d01-687299f3a270.png)

## グループされていないデータが多く見にくいので、各グループの鳥数で集計して表示

```Python

category_count = df.value_counts(df['Category'].values, sort=True)
plt.rcParams['figure.figsize'] = [6, 12]
category_count.plot.barh()

```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409610/aa6dbae0-8ca5-bb2f-2ddc-c5e39fb13443.png)


## 最大の羽のサイズで比較

```Python

maxlength = df['MaxLength']
plt.barh(y=df['Category'], width=maxlength)
plt.rcParams['figure.figsize'] = [6, 12]
plt.show()

```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409610/1573f9fb-fb94-80b2-91b4-c531b7bc054b.png)


## 最小・最大翼幅を鳥のカテゴリ別にプロット

```Python

minLength = df['MinLength']
maxLength = df['MaxLength']
category = df['Category']

plt.barh(category, maxLength)
plt.barh(category, minLength)

plt.show()

```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/409610/695c3c93-715f-d1f0-5500-5e84902ec431.png)

matplotlibを使うと、簡単に可視化できるのでpandasとともにマスターできるとGOOD.

# 著者のTWITTERアカウント

@keiji_dl

# ホームページ（pytorch/python/nlp）

https://deeplearning.sakura.ne.jp/hp


# 参考文献

https://github.com/microsoft/Data-Science-For-Beginners/blob/main/3-Data-Visualization/09-visualization-quantities/README.md