"""
From:
https://www.gov.uk/government/statistics/abortion-statistics-for-england-and-wales-2019
https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/915150/abortion-statistics-2019-data-tables.ods
Table 5: Legal abortions: gestation (weeks) by purchaser and method of
abortion, residents of England and Wales, 2019
"""
import numpy as np
import matplotlib.pyplot as plt
table = np.array([[3, 4, 2207],
5, 5, 28556],
6, 6, 56246],
7, 7, 39409],
8, 8, 28618],
9, 9, 16025],
10, 10, 7448],
11, 11, 6456],
12, 12, 5161],
13, 13, 4442],
14, 14, 2290],
15, 15, 2247],
16, 16, 1578],
17, 17, 1526],
18, 18, 993],
19, 19, 859],
20, 20, 772],
21, 21, 834],
22, 22, 754],
23, 23, 684],
24, 24, 68],
25, 25, 42],
26, 27, 52],
28, 31, 72],
32, 40, 45]])
freqs = table[:, 2
freqs = freqs / 1000
bins = np.concatenate((table0:1, 0], table[:, 1]))
assert len(bins) == len(freqs) + 1
widths = bins1:] - bins[:-1
heights = freqs/widths
heights = freqs.astype(np.float)/widths
fig, ax = plt.subplots(figsize=(4.5, 3.8))
ax.bar(bins[:-1], heights, width=widths, align='edge',
facecolor='#B2BFD9', edgecolor='#778BB2', zorder=2)
"""
Draw to match
/info/en/?search=File:Abortionmethods.png
"""
kwargs = {'xycoords': ('data', 'axes fraction'),
'horizontalalignment': 'center',
'verticalalignment': 'center'}
ax.axvspan(0, 12, color='#ACE07B')
ax.annotate('1st trimester\n(0-12 weeks)', (6, 0.93), **kwargs)
ax.axvspan(12, 28, color='#D8E370')
ax.annotate('2nd trimester\n(13-28 weeks)', (20, 0.93), **kwargs)
ax.axvspan(28, 40, color='#E1BA72')
ax.annotate('3rd trimester\n(29-40 weeks)', (34, 0.93), **kwargs)
ax.axvline(12, c='gray', lw=0.2, zorder=1)
ax.axvline(28, c='gray', lw=0.2, zorder=1)
ax.set_xlim(0, 40)
ax.set_ylim(0, 65)
ax.set_xlabel('Gestational age [weeks]')
ax.set_ylabel('Abortions (×1000)')
ax.minorticks_on()
plt.tight_layout()
plt.show()