#!/usr/bin/env python # coding: utf-8 # In[1]: import pandas as pd import matplotlib.pyplot as plt import matplotlib import urllib.request import zipfile get_ipython().run_line_magic('matplotlib', 'inline') # In[2]: archive_name = "indic-struct-distrib-revenu-2015-SUPRA.zip" subarchive_name = "indic-struct-distrib-revenu-2015-METROPOLE.zip" file_name = "FILO_DISP_METROPOLE.xls" # In[3]: print("downloading file ...") urllib.request.urlretrieve( "https://www.insee.fr/fr/statistiques/fichier/3560118/indic-struct-distrib-revenu-2015-SUPRA.zip", archive_name ) print("fully ownloaded !") # In[4]: def extract(path, member): print("extracting all from %s ..." % path) with zipfile.ZipFile(path, 'r') as zip_ref: zip_ref.extract(member, "./") print("done extracting !") extract(archive_name, subarchive_name) extract(subarchive_name, file_name) # In[5]: df = pd.read_excel( "FILO_DISP_METROPOLE.xls", sheet_name="ENSEMBLE", header=0, index_col=1, skiprows=[0,1,2,3,5] ) df.head() # In[6]: df2 = pd.DataFrame( [ [df['1er décile (€)']['France métropolitaine']], [df['2e décile (€)']['France métropolitaine']], [df['1er quartile (€)']['France métropolitaine']], [df['3e décile (€)']['France métropolitaine']], [df['4e décile (€)']['France métropolitaine']], [df['Médiane (€)']['France métropolitaine']], [df['6e décile (€)']['France métropolitaine']], [df['7e décile (€)']['France métropolitaine']], [df['3e quartile (€)']['France métropolitaine']], [df['8e décile (€)']['France métropolitaine']], [df['9e décile (€)']['France métropolitaine']] ], index=[0.1, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.75, .8, .9], columns=["France Métropolitaine - 2015"] ) df2 = df2.assign(label=[ '1er décile - 10%', '2e décile - 20%', '1er quartile - 25%', '3e décile - 30%', '4e décile - 40%', 'Médiane - 50%', '6e décile - 60%', '7e décile - 70%', '3e quartile - 80%', '8e décile - 80%', '9e décile - 90%' ]) df2 # In[7]: plt.rcParams['figure.figsize'] = [8, 6] font = {'size': 14} matplotlib.rc('font', **font) def chart(df, ylabel): plt.figure(figsize=(1,1), dpi=600) ax = df.plot(kind="line", marker="o", grid=True, legend=True) ax.set_ylabel("€") ax.set_title(ylabel) ax.set_xticks(df.index.tolist()) ax.set_xlim([0,1]) ax.set_xticklabels(df.label, rotation=90) chart(df2, "Revenus disponibles annuels par unité de consommation") df3 = df2.copy() df3['France Métropolitaine - 2015'] = df3['France Métropolitaine - 2015'] / 12 chart(df3, "Revenus disponibles mensuels par unité de consommation")