Edited at

matplotlibを使ってデータ可視化(箱ひげ図)

今回はPython3のmatplotlibの簡単な使い方について話したいと思います.

なぜwxpythonの続きではなく?--->理由は授業で使うからの理由でmatplotlibにした.


matplotlibとは

matplotlibはPythonでグラフを描画するときなどに使われる標準的なライブラリです.

画像ファイルを作るばかりでなく,簡単なアニメーションやインタラクティブなグラフを作ることもできます.

実際の例はmatplotlibサイトのギャラリーで見ることができます.

https://matplotlib.org/gallery.html


準備

サンプルコードを動かす上で予めいくつかモジュールを読み込んでおきます.

import numpy as np

import matplotlib.pyplot as plt

Wikipediaでmatplotlibを見てみると以下の4つのグラフについて紹介しました.


  • 折れ線グラフ

  • ヒストグラム

  • 散布図

  • 3Dグラフ

今回のデータ可視化する図は箱ひげ図となります.


箱ひげ図

箱ひげ図を作るに当たって,まず箱ひげ図についての見方について話します.

四分位数の値を箱ひげに当てはめると次のようになります.

最大値と最小値についてはみんなが分かると思いますが,四分位数について分からない人があると思いますので,簡単に紹介します.

四分位数をパーセンタイルに置き換えてに考えると非常に簡単です.


  • 25パーセンタイル=第一四分位数

  • 50パーセンタイル=第二四分位数

  • 75パーセンタイル=第三四分位数

この3つの四分位数で区切ると,データの個数を4等分することができます.また,第三四分位数から第一四分位数を引いたものを四分位範囲(Inter Quarter Range 略してIQR)といいます.


プログラム

まず,今回で使うデータセットは事前にSQLiteで作成したRecord(データベース名)を利用します.

Japanese(Table Name)

学籍番号
点数

JA01
16

JA02
88

JA03
94

JA04
76

JA05
41

JA06
65

JA07
25

JA08
68

JA09
97

JA10
43

English(Table Name)

学籍番号
点数

JA01
54

JA02
28

JA03
98

JA04
71

JA05
40

JA06
75

JA07
66

JA08
70

JA09
57

JA10
47

import sqlite3

import matplotlib.pyplot as plt
import numpy as np

# データベースに接続
dbname = "Record.sqlite3"
conn = sqlite3.connect(dbname)
c = conn.cursor()

# データを取り出す
Japanese_select = "select mark from Japanese"
English_select = "select mark from English"

Japanese = c.execute(Japanese_select).fetchall()
English = c.execute(English_select).fetchall()

# 点数のタプル
points = (mark(Japanese),mark(English))
# 箱ひげ図
fig, ax = plt.subplots()

bp = ax.boxplot(points)
ax.set_xticklabels(['Japanese', 'English'])
# タイトル名
plt.title('Japanese & English Box Plot')
# ラベル名
plt.xlabel('subject')
plt.ylabel('points')
# Y軸のメモリの長さ
plt.ylim([0,100])
plt.grid()
# 描画
plt.show()

# データベースを閉じる
conn.close()x

上のプログラムを実行して表示する図は以下のようになります.

今回のmatplotlibを使ってデータ可視化(箱ひげ図)は以上で終わります.

読んでいただいてありがとうございます.