import matplotlib as mpl import matplotlib.pyplot as plt import pandas as pd import numpy as np df = pd.read_csv("data.tsv", index_col=0 , sep = "\t") df = df.sort_values(by=["Life expectancy"], ascending=True) x = np.arange(df.index.size) fig, ax = plt.subplots(figsize=(5, 20)) cmap = mpl.colormaps['tab10'] ax.barh(df.index, df["Life expectancy"] , color=cmap(1) ) ax.barh(df.index, df["Healthy life expectancy"] , color=cmap(2) ) ax.set_axisbelow(True) plt.rcParams['font.sans-serif'] = ['Noto Sans JP'] plt.rcParams['font.family'] = 'sans-serif' plt.subplots_adjust(left=0.1, bottom=0.05, right=1, top=0.95) plt.title("Life expectancy and Healthy life expectancy (WHO,2019)", fontsize=13) plt.tick_params(labelsize=9, pad=4) plt.xlabel("year (at birth)", fontsize=9) plt.yticks(fontsize=7) plt.ylim(-0.5, len(df)-.5) plt.xlim([40,90]) ax.legend(df.columns, fontsize=9, ncol=1, loc='lower right', frameon=True, facecolor="#dddddd") ax.minorticks_on() plt.grid(which='major',color='#cccccc',linestyle='-', axis="x") plt.grid(which='minor',color='#cccccc',linestyle='--', axis="x") plt.subplots_adjust(top =0.85) plt.savefig("image.svg", bbox_inches='tight')