Matplotlibで100%積み上げ面グラフを作成する方法
Matplotlibを使って100%積み上げ面グラフ(スタックエリアチャート)を作成するには、以下の手順に従います。
作成手順
図のサイズを設定し、サブプロット間および周囲の余白を調整します。
年(X軸の値)のリストを作成します。
各年の人口データを格納した辞書を作成します。
図(figure)とサブプロット(axes)を作成します。
stackplot() メソッドで積み上げ面グラフを描画します。
凡例を図の左上('upper left')に配置します。
タイトル、X軸ラベル、Y軸ラベルを設定します。
show() メソッドで図を表示します。
サンプルコード
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
year = [1950, 1960, 1970, 1980, 1990, 2000, 2010, 2018]
population_by_continent = {
'africa': [228, 284, 365, 477, 631, 814, 1044, 1275],
'americas': [340, 425, 519, 619, 727, 840, 943, 1006],
'asia': [1394, 1686, 2120, 2625, 3202, 3714, 4169, 4560],
'europe': [220, 253, 276, 295, 310, 303, 294, 293],
'oceania': [12, 15, 19, 22, 26, 31, 36, 39],
}
fig, ax = plt.subplots()
ax.stackplot(year, population_by_continent.values(), labels=population_by_continent.keys())
ax.legend(loc='upper left')
ax.set_title('World population')
ax.set_xlabel('Year')
ax.set_ylabel('Number of people (millions)')
plt.show()
実行結果
このコードを実行すると、各大陸の人口が年ごとに積み上げられた面グラフが表示されます。左上には凡例が配置され、各大陸の色がひと目でわかるようになっています。

厳密な「100%」積み上げにするには
上記のコードは絶対値をそのまま積み上げたものです。各年の合計に対する割合(パーセンテージ)として表示したい場合は、事前にデータを正規化してから stackplot() に渡します。
import numpy as np
values = np.array(list(population_by_continent.values()))
totals = values.sum(axis=0)
percentages = values / totals * 100
fig, ax = plt.subplots()
ax.stackplot(year, percentages, labels=population_by_continent.keys())
ax.set_ylim(0, 100)
ax.legend(loc='upper left')
ax.set_title('World population (100% stacked)')
ax.set_xlabel('Year')
ax.set_ylabel('Share of population (%)')
plt.show()
このようにY軸の範囲を set_ylim(0, 100) で固定すれば、常に全体が100%になる積み上げ面グラフを作成できます。構成比の推移を見たい場合に特に有効な手法です。
-
PythonのMatplotlibでワッフルチャートを作成する方法を解説
ワッフルチャート(Waffle Chart)は、目標に対する進捗状況を視覚的に表現するのに適した、魅力的なデータ可視化手法です。四角いマスが並ぶ様子がワッフルに似ていることからこの名前が付けられており、構成比や達成率を直感的に伝えられます。Pythonでワッフルチャートを作成するには、pywaffleライブラリを使用します。新しい図を作成する際、または既存の図を有効化する際に、FigureClass=Waffleを指定することで簡単に描画できます。作成手順辞書を使ってPandasのデータフレームを作成します。plt.figure()で新しい図を作成する際に、FigureClass=Waffle
-
Pythonのmatplotlibで積み上げ棒グラフを作成・表示する方法
Matplotlibは、Pythonで最も広く使われているデータ可視化ライブラリの一つです。データの可視化は、数値を一つずつ確認したり複雑な計算を行ったりすることなく、データ全体の傾向や特徴を直感的に把握するために欠かせないステップです。また、定量的な洞察を効果的に伝える手段としても非常に有用です。 Matplotlibは、データをもとに2次元のグラフやプロットを作成するために使用されます。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに組み込むことも可能です。IPythonシェル、Jupyter Notebook、Spyder IDEなど、さまざまな環境で