散布図 ヒストグラム カスタマイズ

散布図

# coding: utf-8
import matplotlib
import matplotlib.pyplot as plt
import pandas as pd
%matplotlib inline
import japanize_matplotlib # matplotlibで日本語の文字化けが起きないようにする。

iris = pd.read_csv("iris.csv")
iris_setosa=iris[(iris['species']=='setosa')] → グループ分けしている
iris_versicolor = iris[(iris['species'] == 'versicolor')]
iris_virginica = iris[(iris['species'] == 'virginica')]
iris
sepal_lengthsepal_widthpetal_lengthpetal_widthspecies
05.13.51.40.2setosa
14.93.01.40.2setosa
24.73.21.30.2setosa
34.63.11.50.2setosa
45.03.61.40.2setosa
1456.73.05.22.3virginica
1466.32.55.01.9virginica
1476.53.05.22.0virginica
1486.23.45.42.3virginica
1495.93.05.11.8virginica

irisのコマンドで表示されるのはグループ化される前のデータ

plt.scatter(iris_setosa['sepal_length'], iris_setosa['sepal_width'], c='r', label="setosa", marker="*") makerを指定することもできる。(今回はしていない)
plt.scatter(iris_versicolor['sepal_length'], iris_versicolor['sepal_width'], color='b', marker="D", label = "versicolor")

plt.xlabel("sepal_length")
plt.ylabel("sepal_width")
plt.title("品種による特徴量の分布")
plt.legend()
plt.show()
  • plt.scatter()には必ず必要な引数とそうでないような引数がある。
  • 必ず必要な引数は最初のx軸のデータ、y軸のデータのみである。
    • 例題の1行めのコードではiris_setosa['sepal_length'], iris_setosa['sepal_width']に相当する。
  • 必ず必要ではない引数は何も指定されない場合デフォルトの値で実行される。
    • このようなデータは通常グラフのカスタマイジングのために存在する。
マーカー(marker)説明
‘.’
‘o’
‘*’星(アスタリスク)
‘x’xマーク
‘D’ダイヤモンド
‘s’四角形

ヒストグラム

titanic_df = pd.read_csv('titanic.csv')
titanic_df.head(3)
first_class = titanic_df[titanic_df['Pclass'] == 1]
#second_class = titanic_df[titanic_df['Pclass'] == 2]
third_class = titanic_df[titanic_df['Pclass'] == 3]

plt.hist(first_class['Age'], bins=30, alpha=0.5, color='r', label='first_calss')
#plt.hist(second_class['Age'], bins=30, alpha=0.5, label='second_class')
plt.hist(third_class['Age'], bins=30, alpha=0.5, label='third_class')

plt.title("グラスごとの年齢分布")
plt.xlabel("年齢")
plt.ylabel("人数")
plt.legend()
plt.show()
  • plt.hist()は必須の引数としてデータ1個をもらい、そのデータに範囲ごとで何個入っているかの件数をプロットする。
  • データの何範囲に分けるかを決定する引数はbinsである。
    • bins=15ならばデータの最大値と最小値の間を15個の範囲に分割し、その範囲内のデータの件数を数えてプロットする。
  • データが重なっているとき透明度を調節して両方見ることができるようになる。引数alphaで透明度が調節できる。
    • 引数alphaは0~1の値をとり、1で不透明、0で透明な状態となる。(デフォルトは1)
    • 今まで習ってきたplt.plot()plt.scatter()などにも使える引数である。

コメント

タイトルとURLをコピーしました