%pylab inline # http://www.basicincome.org/bien/pdf/FiguresFAQ.pdf max_income = 10 ubi_value = 2 gross_income = linspace(0, max_income, 11) net_income_no_tax = gross_income net_income_ubi_no_tax = ubi_value + gross_income # halper data net_income_ubi = ubi_value + gross_income * 0.5 # 50% flat tax model fig, ax = plt.subplots() fill_between(gross_income, [ubi_value] * len(gross_income), color='green', alpha=0.2) fill_between(gross_income, net_income_ubi_no_tax, net_income_ubi, color='yellow', alpha=0.2) plot(gross_income, [ubi_value] * len(gross_income), ls = '--', color='black') plot(gross_income, net_income_no_tax, color='black', alpha=0.5, label='no tax') plot(gross_income, net_income_ubi_no_tax, ls = '--', color='black') plot(gross_income, net_income_ubi, linewidth=2, color='black', label='after tax') legend(loc='upper left') xlim((0, max_income)) ax.spines['right'].set_visible(False) ax.spines['top'].set_visible(False) ax.xaxis.set_ticks_position('bottom') ax.yaxis.set_ticks_position('left') title('Income distribution with basic income') ylabel('Net Income') xlabel('Gross Income') text(8, 7, 'TAX', fontsize=12) text(max_income / 2, 0.8, 'BASIC INCOME', fontsize=12, horizontalalignment='center')