今回は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を使ってデータ可視化(箱ひげ図)は以上で終わります.
読んでいただいてありがとうございます.