本記事では、下図のような縦棒グラフを作成する雛形コードを載せました。

例題データは、下図のようなcsvファイルから、データをソート(並び替え)して上図を作成します。

■本プログラム
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import japanize_matplotlib
plt.rcParams['font.size'] = 12
input_file = 'Book2.csv'
df = pd.read_csv(input_file, header=0, encoding="cp932")
df
x_name = '都道府県'
y_name = '人口(1000人)'
DF = df.sort_values([y_name], ascending=True)
DF
fig = plt.figure(dpi=100)
plt.bar(DF[x_name], DF[y_name], 0.6, color='c', label=y_name)
for i, j in enumerate(np.array(DF[y_name])):
print(i, j)
plt.text(i, j, str(int(j)), ha='center', va='bottom', color='black')
plt.ylabel(y_name)
ax = plt.gca()
ax.set_facecolor('lightyellow')
x_min, x_max = ax.get_xlim()
y_spec = 6000
plt.hlines(y_spec, x_min, x_max, 'r', linestyles='dashed')
plt.text(x_min, y_spec + 100, str(y_spec), size=14, color='r')
y_ticklabels = ax.get_yticklabels()
tick_spacing = 2500
ax.yaxis.set_major_locator(ticker.MultipleLocator(tick_spacing))
ax.legend(bbox_to_anchor=(1, 0.95))
plt.grid(which="major", axis="y", color="black", alpha=0.5, linestyle="-", linewidth=0.5)
以上
<広告>
リンク