Up

箱ひげ図

 

箱ひげ図の描画例である。データはExcelファイルとして図1のように用意する。

図1 temper.xlsx

 

2018年6月4日の日本気象協会によるアメダスの各地の最高気温のデータである。図1のファイルの形式は、1行目に変数名が置かれ、データは2行目以降に書かれている。1列目は、データの識別用で通し番号でも識別用文字列でもよい。2列目にヒストグラムを描くデータ値を設定する。この形式のExcelデータファイルに対して箱ひげ図を描くスクリプトを作成してみた。スクリプトファイルとデータファイルは圧縮ファイルfilesboxplot_nfd.zipにまとめたので、ダウンロード解凍すれば自由に利用できる。

スクリプト例を、箱ひげ図横向き箱ひげ図縦向き箱ひげ図横向き、ストリッププロット付き箱ひげ図縦向きストリッププロット付きの順に示す。

本ウェブサイトのサンプルスクリプトの実行には、モジュールpandasmatplotlibjapanize_matplotlibseabornopenpyxlが必要である。これらは、コマンド

 

pip install pandas matplotlib japanize_matplotlib seaborn openpyxl

 

の実行でインストールできる。既にインストール済みのものがあれば、それは無視される。

 

 

 

箱ひげ図(横向き)

 

 

リストのスクリプトDrawBoxPlot_horizontal.pyを実行すると、入力データファイル名の設定が求められる(図2)

図2

 

図2では、図1のデータファイル名temper.xlsxが設定されいている。入力データファイル名を設定して「Enter」キーを押すと、次に画像保存用ファイル名の設定が求められる(図2)。画像保存先ファイル名はファイル拡張子を「.png」としておけば任意であるが、図3では「MyFigure.png」が設定されている。

保存先ファイル名を設定して「Enter」キーを押すと、データが読み込まれてグラフが描かれ、図3の箱ひげ図が表示される。

図3

 

図3のWindowを閉じると、スクリプトの実行終了である(図4)。

図4

 

スクリプトの実行終了後、保存画像ファイルを開くことができる。

 

 

リスト1 箱ひげ図描画スクリプト例(DrawBoxPlot_horizontal.py

 

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import japanize_matplotlib          #   グラフで日本語表記を用いるため

 

finnm = input('入力データファイル(*.xlsx= ')

foutnm = input('画像保存ファイル(*.png= ')

#

#      Excelファイルの読み込み

#

data_xlsx = pd.read_excel(finnm,  header = None)  #   Excelファイルから読み込み、DataFrame型オブジェクトを生成

data = data_xlsx.values                             #   Dataframe型オブジェクトからnumpyの配列オブジェクトを生成

 

var_name = data[0,1]

values = data[1:].T[1]

 

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()                               #   画像の表示

 

 

 

 

箱ひげ図(縦向き:ストリッププロットなし)

 

 

リストのスクリプトDrawBoxPlot_vertical.pyを実行すると、入力データファイル名の設定が求められる(図2)

図5

 

図5では、図1のデータファイル名temper.xlsxが設定されいている。入力データファイル名を設定して「Enter」キーを押すと、次に画像保存用ファイル名の設定が求められる(図2)。画像保存先ファイル名はファイル拡張子を「.png」としておけば任意であるが、図3では「MyFigure.png」が設定されている。

保存先ファイル名を設定して「Enter」キーを押すと、データが読み込まれてグラフが描かれ、図6の箱ひげ図が表示される。

図6

 

図6のWindowを閉じると、スクリプトの実行終了である(図7)。

図7

 

スクリプトの実行終了後、保存画像ファイルを開くことができる。

 

 

リスト2 箱ひげ図描画スクリプト例(DrawBoxPlot_vertical.py

 

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import japanize_matplotlib

 

finnm = input('入力データファイル(*.xlsx= ')

foutnm = input('画像保存ファイル(*.png= ')

#

#      Excelファイルの読み込み

#

data_xlsx = pd.read_excel(finnm,  header = None)    #   ExcelファイルからDataFrame型オブジェクトを生成

data = data_xlsx.values                             #   Dataframe型オブジェクトからnumpyの配列オブジェクトを生成

var_name = data[0,1]

values = data[1:].T[1]

 

plt.figure(figsize = (8, 6))             #   画像のサイズ

plt.boxplot(values)                      #   箱ひげ図(縦向き)

plt.xticks([])                           #   横軸に何も表示しない

plt.yticks(fontsize=12)                  #   縦軸の目盛り文字の大きさ

plt.ylabel(var_name, fontsize=20)        #   縦軸の変数名

plt.savefig(foutnm)                      #   画像の保存

print('保存画像ファイル:', foutnm)

plt.show()                               #   画像の表示

 

 

 

 

箱ひげ図(横向き:ストリッププロット付き)

 

 

リスト3のスクリプトDrawBoxPlot_horizontal_strip.pyを実行すると、入力データファイル名の設定が求められる(図2)

図8

 

図8では、図1のデータファイル名temper.xlsxが設定されいている。入力データファイル名を設定して「Enter」キーを押すと、次に画像保存用ファイル名の設定が求められる(図2)。画像保存先ファイル名はファイル拡張子を「.png」としておけば任意であるが、図8では「MyFigure.png」が設定されている。

保存先ファイル名を設定して「Enter」キーを押すと、データが読み込まれてグラフが描かれ、図9の箱ひげ図がストリッププロットとともに表示される。

図9

 

図9のWindowを閉じると、スクリプトの実行終了である(図10)。

10

 

スクリプトの実行終了後、保存画像ファイルを開くことができる。

 

 

リスト3 箱ひげ図描画スクリプト例(DrawBoxPlot_horizontal_strip.py

 

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import japanize_matplotlib        #    グラフで日本語表記を用いるためのモジュール

import seaborn as sb

 

finnm = input('入力データファイル(*.xlsx= ')

foutnm = input('画像保存ファイル(*.png= ')

#

#      Excelファイルの読み込み

#

data_xlsx = pd.read_excel(finnm,  header = None)    #   ExcelファイルからDataFrame型オブジェクトを生成

data = data_xlsx.values                             #   Dataframe型オブジェクトからnumpyの配列オブジェクトを生成

var_name = data[0,1]

values = data[1:].T[1]

 

plt.figure(figsize = (8, 6))                #   画像のサイズ

sb.boxplot(values, orient='h', width=0.3)   #   箱ひげ図(横向き)

sb.stripplot(values, orient='h')            #   ストリッププロット(横向き)

plt.xticks(fontsize = 12)                   #   横軸の目盛り文字の大きさ

plt.yticks([])                              #   縦軸の目盛りなし

plt.xlabel(var_name, fontsize = 20)         #   横軸の変数名

plt.savefig(foutnm)                         #   画像の保存

print('保存画像ファイル:', foutnm)

plt.show()                                  #   画像の表示

 

 

 

 

箱ひげ図(縦向き:ストリッププロット付き)

 

 

リスト4のスクリプトDrawBoxPlot_horizontal_strip.pyを実行すると、入力データファイル名の設定が求められる(図11

11

 

図8では、図1のデータファイル名temper.xlsxが設定されいている。入力データファイル名を設定して「Enter」キーを押すと、次に画像保存用ファイル名の設定が求められる(図2)。画像保存先ファイル名はファイル拡張子を「.png」としておけば任意であるが、図11では「MyFigure.png」が設定されている。

保存先ファイル名を設定して「Enter」キーを押すと、データが読み込まれてグラフが描かれ、図12の箱ひげ図がストリッププロットとともに表示される。

12

 

12Windowを閉じると、スクリプトの実行終了である(図13)。

13

 

スクリプトの実行終了後、保存画像ファイルを開くことができる。

 

 

 

リスト4 箱ひげ図描画スクリプト例(DrawBoxPlot_vertical_strip.py

 

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import japanize_matplotlib       #   日本語使用のため

import seaborn as sb

 

finnm = input('入力データファイル(*.xlsx= ')

foutnm = input('画像保存ファイル(*.png= ')

#

#      Excelファイルの読み込み

#

data_xlsx = pd.read_excel(finnm,  header = None)  #   Excelファイルを読み込みDataFrame型オブジェクトを生成

data = data_xlsx.values                           #   Dataframe型オブジェクトからnumpyの配列オブジェクトを生成

var_name = data[0,1]

values = data[1:].T[1]

 

plt.figure(figsize = (8, 6))         #   画像のサイズ

sb.stripplot(values)                 #   ストリッププロット

sb.boxplot(values, width=0.3)        #   箱ひげ図

plt.yticks(fontsize=14)              #   縦軸の目盛りのフォントサイズ

plt.ylabel('気温', fontsize=20)

plt.savefig(foutnm)                  #   画像の保存

print('保存画像ファイル:', foutnm)

plt.show()                           #   画像の表示

 

 

 

 

Home