Pandasを用いた棒グラフの作成(前編)|Python

4 アクセス

はじめに

この記事はpandas.DataFrameに列を追加/lambda/三項演算子|Pythonの続き

今回は、棒グラフを作成する

この記事は、以下の著作物を改変して利用しています。
あいちの人口(2024年9月1日現在) 愛知県人口動向調査結果 月報、愛知県、クリエイティブ・コモンズ・ライセンス
表示2.1日本(http://creativecommons.org/licenses/by/2.1/jp/

必要なライブラリのインストール

グラフの描画にあたって、matplotlibが必要となる。さらに、日本語を表示できるようにするためにjapanize_matplotlibもインストールする

エラーの発生

japanize_matplotlibのインストール時に以下のエラーが発生した
ModuleNotFoundError: No module named ‘distutils’
使用しているPythonのバージョンは3.12.7

検索したところ、こちらの記事が参考になった→https://qiita.com/pitao/items/1740a62ddee797aed807

代わりにsetuptoolsをインストールすることで解決するそう

これで準備は完了

棒グラフの描画

pandas.DataFrameにはplotメソッドが用意されている。今回はそのうちのplot.bar()メソッドを用いる。
引数にはx軸とy軸となる列ラベルを指定するだけ
最後にplt.show()を書かないと表示されないので注意

ソースコード

今回は、市町村別の推計人口(2024年9月1日時点)の中でも尾張中西部・海部ブロックの市町村に絞ってグラフにする
市町村列は前回作成したものを利用

import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib

# データの読み込みと抽出
df = pd.read_csv('population.csv', encoding='shift_jis')
df = df[(df["国籍区分"]=="a)日外") & (df["性別"]=="a)男女") & (df["ブロック"]=="尾張中西部・海部")]
# 市区町村列の作成
city = df.apply(lambda x : x["郡市"] if x["区町村"] == "―" else x["区町村"], axis = 1)
df["市区町村"] = city

# 棒グラフの描画
df.plot.bar(x="市区町村", y="20240901")

plt.show()

実行結果

ひとまず、グラフの表示はできた
まだ文字が見切れていたり、グラフのタイトルを加えたり改善点が残っているのでこれから修正していく

後編を公開しました→Pandasを用いた棒グラフの作成(後編)|Python

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です