I'm trying to put the value in the plt.yticks
between the bars. Unfortunately, I have no idea how to do it. Is it possible?, if it is can anyone give some tips?
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
age = np.array(
["0 - 4", "5 - 9", "10 - 14", "15 - 19", "20 - 24", "25 - 29", "30 - 34", "35 - 39",
"40 - 44", "45 - 49", "50 - 54", "55 - 59", "60 - 64", "65 - 69", "70 - 74",
"75 - 79", "80 - 84", "85 - 89", "90 - 94", "95 - 99", "> 100"])
m = np.array(
[1915887, 2100931, 2494484, 2464805, 2361297, 2529633, 2669927, 2754129, 2753282,
2552531, 2211649, 1697221, 1311024, 902675, 722246, 482686, 273915, 108639, 35867,
10965, 1238])
f = np.array(
[1823981, 1980712, 2369795, 2435784, 2330223, 2562964, 2724990, 2860720, 2918730,
2713534, 2376384, 1869867, 1454373, 1030677, 885393, 640698, 388748, 172302, 64170,
19868, 2711])
x = np.arange(age.size)
tick_lab = ['3M', '2M', '1M', '1M', '2M', '3M']
tick_val = [-3000000, -2000000, -1000000, 1000000, 2000000, 3000000]
def plot_pyramid():
plt.barh(x, -m, alpha=.75, height=.75, align='center' , color="deepskyblue")
plt.barh(x, f, alpha=.75, height=.75, align='center', color="pink")
plt.yticks(x, age)
plt.xticks(tick_val, tick_lab)
plt.grid(b=False)
plt.title("Population Pyramid")
plt.show()
if __name__ == '__main__':
plot_pyramid()
Chart generated by this code