matplotlib csvデータ(irisデータ)で箱ひげ図やヒストグラムを描いてみよう
グラフを描く時は、自分のExcelやcsvで描く場合が多いと思います。
そして、個人的には1回しか作成しない図は、Excelで済ます方が早い気がします。何度も描く図であったり、大量のcsvがある場合は、pythonがよろしいかと。
コードでヒストグラム
便利なseabeanなどもありますが、とにかくmatplotlibで描いてみましょう。.hist()で描けます。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
df1 = pd.read_csv("./iris.csv")
spe = df1[['species','sepal_length']]
spe.hist(by='species')
実行結果:
はい。できました。
箱ひげ図
恐ろしく簡単にかけます。.boxplot()関数を使用。
df1.boxplot()
実行結果:
ヒストグラムあれこれ
ヒストグラムのあれこれを忘備録として以下に記します。
#①列ごとにヒストグラムを表示
df1.plot.hist(subplots=True)
#②あるカテゴリでわけた後に列を色を変えてヒストグラムを表示
df1.groupby('species').plot.hist(alpha=0.5)
#③ある変量をカテゴリごとに色分けしてヒストグラムを表示
df1.groupby('species')['sepal_length'].plot.hist(alpha=0.5)
実行結果①:
実行結果②:
省略しますが、同様のグラフが4つでてきます
実行結果③:
と言う感じです。
箱ひげ図いろいろ
こちらもいろんな箱ひげが楽しめます。
#①複数のグラフに一つ一つの列の箱を表示
df1.plot.box(subplots=True)
#②カテゴリごとにグラフをつくり、列ごとの箱を表示
df1.groupby('species').boxplot()
#③列ごとにグラフをつくり、カテゴリで箱を表示
df1.boxplot(by='species')
#④一つの列対し、カテゴリごとの箱を表示
df1.boxplot(by='species',column='sepal_length')
実行結果①:
実行結果②:
実行結果③:
実行結果④:
という感じです。
簡単なモジュールで描くこともできますが、基本的なグラフこそ、pythonの基礎を使って丁寧に描くと理解が深まると思います。