2020-10-27本記事では、Python/matplotlibで実例を使って、積み上げ・100%積み上げ棒グラフを描く方法をご説明します。仕事ですぐに使えるソースコードも紹介します。今回は、以下の実行環境でプログラムを実行しています。1.2.6・Pandas:1.1.2・matplotlib:3.3.2実例としては、次のような予算管理表を使います。ファイル名は「テストデータ.xlsx」で、シート名は「予算管理表」です。■予算管理表まずは、ライブラリをインポートし、今回扱う予算管理表をdfとして読み込んでおきます。'予算管理表')※本記事では、Pythonのコードの下のコメントアウトは、出力結果を示しています。今回は、テストデータの「件名」列で、同一の件名で集約した年度ごとの合計額を、積み上げ縦棒グラフで描いてみたいと思います。列の値ごとに集約するには、groupby()を使います。次の記事で解説してるので、そちらを読んでみてください。参考Pythonで列のフィールド値ごとにグループ集計する方法(groupby)本記事では、Python/Pandasのgroupby関数で列のフィールド値ごとにグループ集計する方法をご紹介します。...続きを見る件名ごとの集約は、次のように書きます。df.groupby('件名').sum()[year_list]集約した結果は、次の通りとなります。それでは、横軸を年度として、縦軸を件名別に積み上げた棒グラフを作成します。コードは、次のように書きます。alpha=.7)#グラフのタイトル・列ラベルを設定ax.set_title('予算の推移(件名別)')ax.set_xlabel('年度')ax.set_ylabel('予算額')#グラフの凡例を設定ax.legend(df.index.tolist())積み上げ棒グラフは、棒グラフの作成で使うbar()の引数で、bottomを設定することで描けます。棒グラフの作り方・bar()の使い方は、次の記事で解説しています。matplotlibで実例を使って、棒グラフを描く方法をご説明します。仕事ですぐに使えるソースコードも紹介します。...続きを見る積み上げ棒グラフは、「行の数だけforループを回し、回した行の金額をbottomとして増やしていく」といったイメージで作ります。bottom=df.iloc[:i].sum()が積み上げ棒グラフを作る上で1番のポイントとなります。結果は、次のようになります。件名ごとに合計額が積み上がっていることが分かります。実務としては、年度ごとの合計額の内訳を視覚的に把握したい時に使えます。次は、年度の件名ごとの割合を表現する「100%積み上げ棒グラフ」を描いてみます。実は、これはグラフの書き方というより、グラフの元になるデータ(DataFrame)の値を変更すればよいのです。年度の件名別の金額の割合を算定するため、年度の合計金額で割ればよいことになります。実際には、forループを使って、次の通り計算を行います。df[year].sum()これにより、次の通り件名の金額割合が算定できました。これを積み上げ棒グラフを同じように書きます。borderaxespad=2)グラフの凡例の設定のみ変更しています。legend()の引数のlocで凡例の位置、borderaxespadで枠との距離を指定しています。結果は次の通りになります。100%積み上げ棒グラフなので、年度で同じ高さになり、縦軸がちゃんと割合となっています。matplotlibで積み上げ棒グラフと100%積み上げ棒グラフを描く方法を実例を題材にして、説明してきました。最後まで読んでいただき、ありがとうございました。-Pythonを利用-インスタって自動で投稿できないのかな。...4これまでPythonで作ったツール・プログラム(ブログ、SNS、画像処理)ここでは、サイト管理者のいなサラがこれまでPythonで作ったものをご紹介します。グラフ【一瞬で解決】Pythonでグラフのタイトル、ラベル、凡例を日本語にする方法PREVPythonでExcelのIF関数のように条件分岐で値を設定する方法(多値分類もあり)NEXT【1行】Python/matplotlibでグラフに円単位の文字を入れる方法いなサラ田舎の情シスサラリーマン。妻と娘(5歳、1歳)の4人家族。2017年にNTTデータからUターン転職し、事業会社の社内SEで勤務。note」を立ち上げ、収益化。-Pythonを利用-インスタって自動で投稿できないのかな。...4これまでPythonで作ったツール・プログラム(ブログ、SNS、画像処理)ここでは、サイト管理者のいなサラがこれまでPythonで作ったものをご紹介します。