'21/02/26:刷新
本記事では、横棒グラフ化する雛形コードを載せました。下図左のような都道府県別の人口データのcsvファイルがあります。これを下図右のようにソート(並び替え)して横棒グラフ化します。
日本語が含まれてるデータをmatplotlibで扱う場合には、次のように日本語フォントをインストールします。
pip install japanize-matplotlib
■本プログラム
import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
def xy_plot(DF, X, Y):
print(DF)
df_x = DF[X]
df_y = DF[Y]
y_np = np.array(df_y)
plt.figure(figsize=(8,10))
plt.barh(range(len(df_x)), df_y, tick_label=df_x, align="center", color="magenta", height=0.8)
for i, j in enumerate(y_np):
plt.text(j, (i+0.5), str(int(j)), ha='left', va='top')
plt.xlabel(y_name, fontsize=10)
plt.grid(which="major", axis="x", color="black", alpha=0.8, linestyle="-", linewidth=1)
plt.tight_layout()
fig_name = os.path.splitext(os.path.basename(input_file))[0] + ".png"
plt.savefig(fig_name)
def main():
df = pd.read_csv(input_file, header=0, encoding="cp932")
df_sorted = df.sort_values([y_name], ascending=True)
xy_plot(df_sorted, x_name, y_name)
if __name__ == '__main__':
input_file = 'Book.csv'
x_name = '都道府県'
y_name = '人口(1000人)'
main()
以上
<広告>
リンク