2軸グラフの作り方

%matplotlib inline
import matplotlib.pyplot as plt
plt.style.use('seaborn-darkgrid')
month = [4, 5, 6, 7, 8, 9]
sales_new = [11, 17, 12, 24, 35, 58] # 新規顧客の売上(千円)
sales_old = [102, 141, 127, 167, 202, 205] # 既存顧客の売上(千円)
rate_new = [round(new_ / (new_ + old) * 100)
            for new_, old in zip(sales_new, sales_old)](内包表記)

round関数は他で
ここでは、zip関数を用いて、oldとnew_の数字の組を作っている。

labels = ['Sales & New rate', 'Sales(1000 yen)', 'New rate(%)']
fig, ax1 = plt.subplots()
ax1.set_title(labels[0])
ax2 = ax1.twinx()
 →ax1の2軸目となるサブプロットを作成し、ax2に代入します
 2軸のグラフを描画するには、このようにtwinxを使い、2つ目のサブプロット(ax2)を  
 作成します。1軸目のグラフはax1で描画し、2軸目のグラフはax2で描画します。

ax2.grid(False)
 →ax2の補助線を表示しないようにします。

ax1.bar(month, sales_old, label='Old')
ax1.bar(month, sales_new, label='New', bottom=sales_old)
ax1.set_xlabel('Month')
ax1.set_ylabel(labels[1])
ax1.legend()

ax2.plot(month, rate_new, color='r')
ax2.set_ylabel(labels[2])
ax2.set_ylim(bottom=0);
 →ax2の下部を0にします。

コメント

タイトルとURLをコピーしました