複数のグラフをプロット

始めに

前回に,『Python 機械学習のテストデータって何%にするのがベストなの?』という投稿をしました.

この投稿では,機械学習で使われるアルゴリズムごとの精度を比較しました.

そこで,今回は,この投稿の最後に表した複数のグラフを一度にプロットする方法をご紹介します.

簡単に出来るので,Pythonでグラフを描きたい場合はぜひ使ってみてください^^

(Udemy 『実践Pythonデータサイエンス』を参考,Jupiter notebookを使用)

Today’s Code

扱うデータ

今回は,前回と同様に,アイリス(iris)のデータを使いたいと思います.

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

今回は,このデータの『 SEPAL_LENGTH 』,『 SEPAL_WIDTH 』,『 PETAL_LENGTH 』,『 PETAL_WIDTH 』についてプロットします.

それでは,コードを見てみましょう⤵

コード

#subplot()の間隔の調整
plt.subplots_adjust(wspace=0.4, hspace=0.6)


###sepal_length###
plt.subplot(2,2,1)

plt.plot(data.index, data["sepal_length"], color="red")


###petal_width###
plt.subplot(2,2,2)

plt.plot(data.index, data["sepal_width"], color="blue")


###petal_length###
plt.subplot(2,2,3)

plt.plot(data.index, data["petal_length"], color="green")


###petal_width###
plt.subplot(2,2,4)

plt.plot(data.index, data["petal_width"], color="purple")

このコードについて,ご説明します.

  1. plt.subplots_adjust(wspace=0.4, hspace=0.6) → グラフ同士の幅を調節
  2. plt.subplot(2,2,1) → 2行2列の1番目にプロット
  3. data.index → x軸にデータフレームのインデックスの値を指定
  4. data[“sepal_length”] → y軸に,それぞれのカラムの値を指定

ちなみに,インデックスの値とは,上のデータフレームの『0,1,2,3,4・・・』と表示されている部分を指します.

また,カラムの値とは, 『 SEPAL_LENGTH 』,『 SEPAL_WIDTH 』,『 PETAL_LENGTH 』,『 PETAL_WIDTH 』 の値のことを指します.

このコードを記述すると,以下のように4つのグラフがプロットされます.

irisの特徴を複数のプロットで表現

この状態だと,どのグラフが何を表しているのかが分からないので,

タイトルとラベルを追加したいと思います.

#subplot()の間隔の調整
plt.subplots_adjust(wspace=0.4, hspace=0.6)


###sepal_length###
plt.subplot(2,2,1)

plt.plot(data.index, data["sepal_length"], color="red")

plt.title("sepal_length")

plt.xlabel("index")

plt.ylabel("features (cm)")


###petal_width###
plt.subplot(2,2,2)

plt.plot(data.index, data["sepal_width"], color="blue")

plt.title("sepal_width")

plt.xlabel("index")

plt.ylabel("features (cm)")


###petal_length###
plt.subplot(2,2,3)

plt.plot(data.index, data["petal_length"], color="green")

plt.title("petal_length")

plt.xlabel("index")

plt.ylabel("features (cm)")


###petal_width###
plt.subplot(2,2,4)

plt.plot(data.index, data["petal_width"], color="purple")

plt.title("petal_width")

plt.xlabel("index")

plt.ylabel("features (cm)")

以下の3つのコードを追加します.

  1. plt.title(“sepal_length”)
  2. plt.xlabel(“index”)
  3. plt.ylabel(“features (cm)”)

すると,このようにそれぞれのグラフに,タイトルとラベルが追加されました.

irisの複数のグラフをプロットpart2

以下に,全体のコードを載せておきます.

全体のコード

ライブラリ

import numpy as np

import pandas as pd

from pandas import Series, DataFrame

import matplotlib.pyplot as plt

import seaborn as sns

sns.set_style("whitegrid")

コード

#irisのデータを読み込む
data = sns.load_dataset("iris")


#実行
data


#subplot()の間隔の調整
plt.subplots_adjust(wspace=0.4, hspace=0.6)


###sepal_length###
plt.subplot(2,2,1)

plt.plot(data.index, data["sepal_length"], color="red")

plt.title("sepal_length")

plt.xlabel("index")

plt.ylabel("features (cm)")


###petal_width###
plt.subplot(2,2,2)

plt.plot(data.index, data["sepal_width"], color="blue")

plt.title("sepal_width")

plt.xlabel("index")

plt.ylabel("features (cm)")


###petal_length###
plt.subplot(2,2,3)

plt.plot(data.index, data["petal_length"], color="green")

plt.title("petal_length")

plt.xlabel("index")

plt.ylabel("features (cm)")


###petal_width###
plt.subplot(2,2,4)

plt.plot(data.index, data["petal_width"], color="purple")

plt.title("petal_width")

plt.xlabel("index")

plt.ylabel("features (cm)")

終わりに

今回は,複数のグラフを一度にプロットする方法についてご紹介しました.

同時に表示することで,グラフの比較が簡単に行えるので,オススメです.

ぜひ,使ってみてください^^

それでは・・・

Q &A

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA