メールマガジン・新着情報一覧
- TOP
- メールマガジン・新着情報一覧
- D-0162. ヒストグラムをPythonで確認する — Y.O
2020.07.15
D-0162. ヒストグラムをPythonで確認する — Y.O
◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇ ヒストグラムをPythonで確認する 発行:エスオーエル株式会社 https://www.sol-j.co.jp/ 連載「知って得する干渉計測定技術!」 2020年7月15日号 VOL.162 平素は格別のお引き立てを賜り、厚く御礼申し上げます。 干渉計による精密測定やアプリケーション例などをテーマに、 無料にてメールマガジンとして配信いたします。 ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇ こんにちは。営業技術グループの落合です。 前回の担当メルマガにて、平均や標準偏差を 学習中のPythonで出力する話題について書きました。 今回もこれにお付き合い頂き、 ヒストグラムをPythonで確認する として、 ヒストグラムをPythonで作成してみます。 今回は、実行結果が図のため、 メールマガジンにはコードのみを記したいと思います。 (前回ご紹介した 「Google Colaboratory」というサービスに そのまま打ち込むと、すぐに結果が出ます。) 以下、頭に#がついた行はコメントです。 実行時に、#から行末までが無視されます。 【コードはじめ】 #モジュールのインポート import numpy as np import matplotlib.pyplot as plt # 測定値の読み込み x_data = np.array([5.1, 5.0, 4.6, 6.1, 3.2, 6.5, 4.2, 6.1, 4.1, 5.6]) # ヒストグラムの作成 plt.hist(x_data, bins=8, range=(0,10)) # ヒストグラムの表示 plt.show() 【コード終わり】 コードは以上で終わりです。 短いです。 しかし、初学者として 細かく確認していきたい点があります。 ⇒#モジュールのインポート import numpy as np import matplotlib.pyplot as plt では、 今回必要なモジュールを読み込んでいます。 numpy は配列に関する機能のモジュールです。 matplotlib.pyplotは、グラフ描画機能のモジュールです。 「matplotlib.pyplot」となっているのは、 matplotlibのモジュールのうち、 さらにpyplotという機能だけを読み込むことを示しています。 ⇒#測定値の読み込み x_data = np.array([5.1, 5.0, 4.6, 6.1, 3.2, 6.5, 4.2, 6.1, 4.1, 5.6]) では、架空の測定値10点を用意しました。 10点ではさみしい感じがしますが、 メルマガが長くなってしまうのを避けつつ それなりの見栄えのヒストグラムができるベストなデータ数です。 np.array([])の中に入れることで、 右辺で新しい配列を作成し、左辺のx_dataという変数に代入しています。 ⇒#ヒストグラムの作成 plt.hist(x_data, bins=8, range=(0,10)) では、 plt.hist()という関数を呼び出し(=実行する事)ています。 この関数は、カッコ内に plt.hist(測定値の配列, bins=階級数, range=(x軸の最小値, x軸の最大値)) のように入力することで、 ヒストグラムデータ(度数分布表のデータ) を作成し、出力するという働きをします。 ヒストグラムはエクセルで作成する場合、 階級(0.1ごとに区切るなら、5.1、5.2、5.3・・・)を手入力して 分析ツールを起動するなど少々手数がかかります。 特に階級数を変更する際、この一行で済むのは楽だと感じました。 ちなみに、 Python等のプログラミング言語では、 関数()内への入力を引数と呼び、 出力されるデータ(値)を戻り値と言います。 一般的に「関数」はカッコ内に入力を入れると、結果が出力されますが、 その通りの名称だなあと思います。 ⇒#ヒストグラムの表示 plt.show() では、 plt.show()は、前の行で出力されたデータをグラフ描画する関数です。 plt.hist()だけではデータが作られただけで、グラフは表示されません。 プログラムは一行一処理しかできないんだなあと感じる一行です。 ちなみに、plt.hist()は、戻り値のある関数でしたが、 plt.show()は、戻り値のない関数です。 この関数は、グラフ描画をするという 固有の処理が割り当てられているだけで、入力や出力がありません。 この場合、数学の「関数」とは意味が違います。 以上、私のコード読み下しに お付き合い頂き、ありがとうございました。 この数カ月少しずつPythonを触ってみましたが、 ごく簡単なコードを動かすまでの道のりが長かったです。 (エラーばかり起こります。) 1の楽な機能を見つけても、 間違いなく使うには10くらい調べる必要がある ということも分かりました。 使いこなせるようになれば高度な計算ができるプログラミング。 また、欲しい機能を調べて挑戦してみたいと思います。 -- Y.O