import matplotlib.pyplot as plt
from cycler import cycler
import pandas as pd
import numpy as np
df = pd.read_csv("data.tsv", index_col=0 , sep = "\t")
df1 = df.T.loc['TFR'] # line
df1 = df1.fillna(method='ffill')
df2 = df.T.loc['Births'].div(1000) # bar
fig, ax = plt.subplots(figsize=(10, 5))
ax2 = ax.twinx()
plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.sans-serif'] = ['Noto Sans Display']
plt.subplots_adjust(left=0.08, bottom=0.08, right=0.93, top=0.90)
ax.bar(df2.index, df2, color="#FAAA69", width=0.6, label="Births")
ax.set_axisbelow(True)
ax.tick_params(axis='x', labelrotation=75)
ax.set_ylabel("Number of births (1000 person)", fontsize=12)
ax.set_ylim([0,3000])
ax2.set_ylabel("Total Fertility Rate", fontsize=12)
ax2.set_ylim([0,6])
ax2.axhspan(0,2.1, color="lightblue", alpha=0.4 , zorder=-10)
ax2.set_prop_cycle( plt.rcParams['axes.prop_cycle'] )
ax2.plot(df1, label="TFR")
ax.margins(0.02)
ax2.margins(0.02)
lines, labels = ax.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax2.legend(lines + lines2, labels + labels2, facecolor="#eeeeee" ,
ncol=2, fontsize=13,loc='upper right')
plt.title("Number of births and Total Fertility Rate of Japan (MHLW Vital statistics)", fontsize=16)
plt.setp(ax.get_xticklabels(), fontsize=8)
plt.setp(ax.get_yticklabels(), fontsize=9)
plt.xticks(np.arange(1900, 2021, step=4), fontsize=9)
plt.tick_params(labelsize=9, pad=4)
plt.minorticks_on()
plt.grid(which='major',color='#999999',linestyle='-', axis="y")
plt.grid(which='minor',color='#dddddd',linestyle='--', axis="y")
plt.savefig("image.svg")