Matplotlibで水平積み上げ棒グラフを作成する方法
Matplotlibで水平(横向き)の積み上げ棒グラフを描画するには、barh()メソッドを使用します。ポイントは、2回目のbarh()呼び出し時にleft引数へ最初のデータ系列を渡すことで、バーを横方向に積み重ねられる点です。
作成手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を自動調整します。
- 年(year)、対応済み課題数(issues_addressed)、未対応課題数(issues_pending)のリストを用意します。
- yearとissues_addressedのデータで、まず基本となる水平棒グラフを描画します。
- 積み上げを実現するため、yearとissues_pendingに加えてleft=issues_addressedを指定して、再度barh()メソッドを呼び出します。
- legend()メソッドで凡例をグラフ上に配置します。
- show()メソッドで図を表示します。
コード例
from matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True year = [2014, 2015, 2016, 2017, 2018, 2019] issues_addressed = [10, 14, 0, 10, 15, 15] issues_pending = [5, 10, 50, 2, 0, 10] b1 = plt.barh(year, issues_addressed, color="red") b2 = plt.barh(year, issues_pending, left=issues_addressed, color="yellow") plt.legend([b1, b2], ["Completed", "Pending"], title="Issues", loc="upper right") plt.show()
実行結果

このコードを実行すると、各年ごとに「完了(Completed)」が赤色、「保留中(Pending)」が黄色で描画された水平積み上げ棒グラフが表示されます。特に2016年は未対応の課題が50件と突出して多く、積み上げ表示によって全体に占める割合もひと目で把握できます。
ポイント解説
- left引数: 積み上げ棒グラフの核心となるパラメータです。前の系列の値を開始位置として指定することで、バーが連なって表示されます。3系列以上の場合は、それまでの合計値をleftに渡せば同様に積み上げられます。
- figure.autolayout: Trueに設定すると、ラベルや凡例が図の外にはみ出さないよう余白が自動調整されます。
- 凡例のカスタマイズ: legend()のtitle引数で凡例にタイトルを付け、loc引数で表示位置(ここでは右上)を指定しています。
-
Python・Matplotlibでテキストファイルを読み込んでシンプルな棒グラフを作成する方法
入力したテキストファイル(.txt)のデータをもとに、シンプルな棒グラフを描画する方法を解説します。PythonのMatplotlibライブラリを使えば、わずか数行のコードで実現できます。 基本的な手順 テキストファイルから棒グラフを作成するには、以下の手順に従います。 棒のラベル(名前)と高さ(値)を格納するための空のリストを用意します。 テキストファイルを開き、1行ずつ読み込みます。 各行から読み取った名前と高さを、それぞれ対応するリストに追加します。 用意したリストを使って plt.bar() で棒グラフを描画します。 plt.show() メソッドを呼び出して、図を画面に表示します。
-
Pythonのmatplotlibで積み上げ棒グラフを作成・表示する方法
Matplotlibは、Pythonで最も広く使われているデータ可視化ライブラリの一つです。データの可視化は、数値を一つずつ確認したり複雑な計算を行ったりすることなく、データ全体の傾向や特徴を直感的に把握するために欠かせないステップです。また、定量的な洞察を効果的に伝える手段としても非常に有用です。 Matplotlibは、データをもとに2次元のグラフやプロットを作成するために使用されます。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに組み込むことも可能です。IPythonシェル、Jupyter Notebook、Spyder IDEなど、さまざまな環境で