箱ひげ図
箱ひげ図の描画例である。データはExcelファイルとして図1のように用意する。
・
・
・
図1 temper.xlsx
2018年6月4日の日本気象協会によるアメダスの各地の最高気温のデータである。図1のファイルの形式は、1行目に変数名が置かれ、データは2行目以降に書かれている。1列目は、データの識別用で通し番号でも識別用文字列でもよい。2列目にヒストグラムを描くデータ値を設定する。この形式のExcelデータファイルに対して箱ひげ図を描くスクリプトがリスト1のDrawBoxPlot.pyである。スクリプトファイルとデータファイルは圧縮ファイルfilesboxplot_nfd.zipにまとめたので、ダウンロード解凍すれば自由に利用できる。
スクリプトDrawBoxPlot.pyを実行すると、入力データファイル名の設定が求められる(図2)
図2
図2では、図1のデータファイル名temper.xlsxが設定されいている。入力データファイル名を設定して「Enter」キーを押すと、次に画像保存用ファイル名の設定が求められる(図2)。画像保存先ファイル名はファイル拡張子を「.png」としておけば任意であるが、図3では「MyFigure.png」が設定されている。
保存先ファイル名を設定して「Enter」キーを押すと、データが読み込まれてグラフが描かれ、図3の箱ひげ図が表示される。
図3
図3のウィンドウを閉じると、スクリプトの実行終了である(図4)。
図4
図4の「Squeezed text (50 lines)」のところは、マウスの右ボタンでクリックすれば開くことができる。
スクリプトの実行終了後、保存画像ファイルを開くことができる。
リスト1 箱ひげ図描画スクリプト例(DrawBoxPlot.py)
import pandas as pd
import numpy
as np
import matplotlib.pyplot
as plt
finnm = input('入力データファイル(*.xlsx)= ')
foutnm = input('画像保存ファイル(*.png)= ')
#
# Excelファイルの読み込み
# モジュール xlrd がインストール済みであること
#
xlsx_fl = pd.ExcelFile(finnm)
# ExcelファイルからExcelFile型オブジェクトを生成
data_xlsx = pd.read_excel(xlsx_fl, header
= None) # ExcelFile型オブジェクトからDataFrame型オブジェクトを生成
data = data_xlsx.values
# Dataframe型オブジェクトからnumpyの配列オブジェクトを生成
print(data)
var_name = data[0,1]
values = data[1:].T[1]
# 日本語表記の設定
plt.rcParams['font.family']
= ['Yu Gothic', 'Noto Sans CJK JP', 'Hiragino Maru Gothic Pro']
plt.figure(figsize =
(8, 6))
# 画像のサイズ
plt.boxplot(values, vert
= False)
# 箱ひげ図
plt.xticks(fontsize =
12)
# 横軸の目盛り文字の大きさ
plt.yticks([])
# 縦軸の目盛りなし
plt.xlabel(var_name, fontsize = 20) # 横軸の変数名
plt.savefig(foutnm)
# 画像の保存
print('保存画像ファイル:', foutnm)
plt.show()
# 画像の表示