import pandas as pd import psycopg2 as psy import getpass import matplotlib.pyplot as plt data = pd. read_csv (r'vgsales.csv') df = pd.DataFrame(data) df = df.drop_duplicates() co = None try: co = psy. connect(host='londres', database ='dbanperederi', user='anperederi', password = getpass.getpass("Mot de passe:")) #Q1 Écrire la requête SQL permettant de calculer le total des ventes de jeux dans le monde par genre. datafr = pd.read_sql('''SELECT round(sum(global_sales),2) as total_vente, genre FROM VGSales GROUP BY genre ORDER BY total_vente DESC;''', con=co) fig = datafr .plot.pie(y='total_vente', labels=datafr['genre'], autopct='%1.1f%%', figsize=(5, 5), legend=False) # Generation du graphique plt.show () # Affichage #Q2 Écrire la requête SQL permettant de calculer e pourcentage des ventes dans le monde par genre. datafr = pd.read_sql('''SELECT (sum(global_sales)/(SELECT sum(global_sales) FROM VGSales))*100 as pourcentage FROM VGSales GROUP BY genre ORDER BY pourcentage DESC;''', con=co) fig = datafr.plot(kind='pie', legend=False ,title='Ventes par plateforme', figsize=(5, 5), fontsize=12, subplots=True) plt.show() # fig = datafr .plot.pie(y='pourcentage', labels=datafr['genre'], autopct='%1.1f%%', figsize=(5, 5), legend=False) # Generation du graphique # plt.show () # Affichage #Q3 Afficher les résultats sous forme de diagramme camembert. datafr = pd.read_sql('''SELECT (sum(global_sales)/(SELECT sum(global_sales) FROM VGSales))*100 as pourcentage FROM VGSales GROUP BY genre ORDER BY pourcentage DESC;''', con=co) fig = datafr.plot(kind='pie', legend=False ,title='Ventes par plateforme', figsize=(5, 5), fontsize=12, subplots=True) plt.show() # fig = datafr .plot.pie(y='pourcentage', labels=datafr['genre'], autopct='%1.1f%%', figsize=(5, 5), legend=False) # Generation du graphique # plt.show () # Affichage #Q4 Afficher le total des ventes par genre sous forme de diagrammes camembert de façon à voir sur la même figure : # un camembert représentant les ventes avant l’année 1990 (exclue), # un camembert représentant les ventes entre 1990 et 1999, # un camembert représentant les ventes entre 2000 et 2009, # un camembert représentant les ventes à partir de 2010. datafr1 = pd.read_sql('''SELECT (sum(global_sales)/(SELECT sum(global_sales) FROM VGSales WHERE year < 1990))*100 as pourcentage FROM VGSales WHERE year < 1990 GROUP BY genre ORDER BY pourcentage DESC;''', con=co) datafr2 = pd.read_sql('''SELECT (sum(global_sales)/(SELECT sum(global_sales) FROM VGSales WHERE year >= 1990 AND year < 2000))*100 as pourcentage FROM VGSales WHERE year >= 1990 AND year <= 1999 GROUP BY genre ORDER BY pourcentage DESC;''', con=co) datafr3 = pd.read_sql('''SELECT (sum(global_sales)/(SELECT sum(global_sales) FROM VGSales WHERE year >= 2000 AND year < 2010))*100 as pourcentage FROM VGSales WHERE year >= 2000 AND year <= 2009 GROUP BY genre ORDER BY pourcentage DESC;''', con=co) datafr4 = pd.read_sql('''SELECT (sum(global_sales)/(SELECT sum(global_sales) FROM VGSales WHERE year >= 2010))*100 as pourcentage FROM VGSales WHERE year >= 2010 GROUP BY genre ORDER BY pourcentage DESC;''', con=co) _, axes = plt.subplots(nrows=2, ncols=2) fig = datafr1.plot(y=0, kind='pie', legend=False ,title='Ventes par plateforme', ax=axes[0,0]) fig = datafr2.plot(y=0, kind='pie', legend=False ,title='Ventes par plateforme', ax=axes[0,1]) fig = datafr3.plot(y=0, kind='pie', legend=False ,title='Ventes par plateforme', ax=axes[1,0]) fig = datafr4.plot(y=0, kind='pie', legend=False ,title='Ventes par plateforme', ax=axes[1,1]) plt.show() # fig = datafr .plot.pie(y='pourcentage', labels=datafr['genre'], autopct='%1.1f%%', figsize=(5, 5), legend=False) # Generation du graphique # plt.show () # Affichage except (Exception , psy.DatabaseError ) as error : print ( error ) finally : if co is not None: co.close ()