Matplotlibでしきい値線(閾値ライン)付きの棒グラフを作成する方法
Matplotlibの棒グラフにしきい値線(閾値ライン)を追加したい場合、axhline()メソッドを使うのが最も簡単な方法です。この記事では、しきい値を基準に棒グラフの色を分け、赤色の点線でしきい値線を引く実装手順を解説します。
実装の手順
- 図のサイズを設定し、サブプロット間・周囲の余白(パディング)を調整します。
- しきい値を格納する変数 threshold を初期化します。
- 棒グラフに表示するデータ値のリストを作成します。
- しきい値をもとに、それ以下の値と超過分の値をそれぞれ計算します。
- subplots() メソッドでFigureとサブプロットを作成します。
- x、b_threshold(しきい値以下)、a_threshold(超過分)の値を使って棒グラフを描画します。超過分は下に積み上げる形で色分けします。
- axhline() メソッドで軸全体に横断する水平線(しきい値線)を追加します。
- show() メソッドで図を表示します。
コード例
import numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True threshold = 10 values = np.array([8.0, 10.0, 15.0, 9.0, 12.0]) x = range(len(values)) a_threshold = np.maximum(values - threshold, 0) b_threshold = np.minimum(values, threshold) fig, ax = plt.subplots() ax.bar(x, b_threshold, 0.35, color="blue") ax.bar(x, a_threshold, 0.35, color="yellow", bottom=b_threshold) plt.axhline(threshold, color='red', ls='dotted') plt.show()
コードのポイント解説
このコードの肝となるのは、np.maximum()とnp.minimum()による値の分割処理です。a_threshold = np.maximum(values - threshold, 0)では、しきい値を超えた分だけの値を計算し、しきい値未満の場合は0になります。一方、b_threshold = np.minimum(values, threshold)では、しきい値以下の部分だけが取り出されます。
これにより、青色の棒がしきい値までの高さを表し、黄色の部分がしきい値を超えた分として積み上げ表示されます。最後にaxhline()で赤色の点線(ls='dotted')をしきい値の位置に引くことで、どのバーがしきい値を超えているのかが一目でわかるグラフになります。
出力結果

実行すると、しきい値10を境に青と黄で色分けされた棒グラフと、赤色の点線で示されたしきい値線が表示されます。この手法は、目標値やアラート基準などとの比較を視覚化したい場合に非常に便利です。
-
Matplotlibで棒グラフのバーにテキストを表示する方法
Matplotlibの棒グラフで、各バーの上にテキスト(数値やラベルなど)を表示したい場合は、text()メソッドを使用します。このメソッドを使うことで、グラフ上の任意の位置(x座標・y座標)を指定して、自由にテキストを配置できます。 実装の手順 x軸のラベル、y軸の値、そしてpercentage(パーセント値)のリストをそれぞれ作成します。 bar()メソッドを使って棒グラフを描画します。 zip()関数で3つのリストをまとめ、for文で反復処理しながら各バーの位置にテキストを配置します。 最後にshow()メソッドを呼び出して図を表示します。 コード例 import matplotli
-
Pythonのmatplotlibで積み上げ棒グラフを作成・表示する方法
Matplotlibは、Pythonで最も広く使われているデータ可視化ライブラリの一つです。データの可視化は、数値を一つずつ確認したり複雑な計算を行ったりすることなく、データ全体の傾向や特徴を直感的に把握するために欠かせないステップです。また、定量的な洞察を効果的に伝える手段としても非常に有用です。 Matplotlibは、データをもとに2次元のグラフやプロットを作成するために使用されます。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに組み込むことも可能です。IPythonシェル、Jupyter Notebook、Spyder IDEなど、さまざまな環境で