You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SAE_204/statsVisualisation_1.py

88 lines
3.7 KiB

import pandas as pd
import psycopg2 as pg
import subprocess as sp
import matplotlib.pyplot as plt
# nom = input("Nom d'utilisateur : ")
# print(nom)
# util = 'db' + nom
# print(util)
sp.run(["stty", "-echo"])
mdp = input("Le mot de passe stp : ")
sp.run(["stty", "echo"])
co = None
try:
# Connexion à la base
# Attention ! pensez à remplacer dblogin , login et mot_de_passe
#avec vos informations
co = pg.connect(host='londres',
database ='dblolaborie',
user='lolaborie',
password = mdp)
df = pd.read_sql('''SELECT p.nomR,avg(s.position) as Moyenne_Position_Region
FROM Statistique s, Pays p, Region r
WHERE s.codeP = p.code AND p.nomR = r.nom AND s.annee = '2022'
GROUP BY p.nomR;''', con=co) # Position moyenne par région en 2022
plt.plot(df['nomr'], df['moyenne_position_region'],'g')
plt.plot(df['nomr'], df['moyenne_position_region'],'xk')
plt.title("Position moyenne par région en 2022")
plt.show() # Affichage
df = pd.read_sql('''SELECT p.nom,s.jkill as journalistes_tues
FROM Statistique s, Pays p
WHERE s.codeP = p.code AND s.annee = '2022'
ORDER BY s.jkill DESC
LIMIT 5;''', con=co) # les 5 pays où le nombre de journalistes tués en 2022 est le plus élevé
plt.plot(df['nom'], df['journalistes_tues'],'r')
plt.plot(df['nom'], df['journalistes_tues'],'xb')
plt.title("les 5 pays où le nombre de journalistes tués en 2022 est le plus élevé")
plt.show() # Affichage
df = pd.read_sql('''SELECT p.nom,s.jkill as journalistes_tues
FROM Statistique s, Pays p
WHERE s.codeP = p.code AND s.annee = '2020'
ORDER BY s.jkill DESC
LIMIT 5;''', con=co) # les 5 pays où le nombre de journalistes tués en 2020 est le plus élevé
plt.plot(df['nom'], df['journalistes_tues'],'r')
plt.plot(df['nom'], df['journalistes_tues'],'xk')
plt.title("les 5 pays où le nombre de journalistes tués en 2020 est le plus élevé")
plt.show() # Affichage
df = pd.read_sql('''SELECT p.nom,s.mkill as personnes_tues
FROM Statistique s, Pays p
WHERE s.codeP = p.code AND s.annee = '2022'
ORDER BY s.mkill DESC
LIMIT 5;''', con=co) # les 5 pays où le nombre de personnes travaillant dans les médias tuées en 2022 est le plus élevé
plt.plot(df['nom'], df['personnes_tues'],'b')
plt.plot(df['nom'], df['personnes_tues'],'xr')
plt.title("les 5 pays où le nombre de personnes travaillant dans les médias tuées en 2022 est le plus élevé")
plt.show() # Affichage
df = pd.read_sql('''SELECT p.nom,s.mkill as personnes_tues
FROM Statistique s, Pays p
WHERE s.codeP = p.code AND s.annee = '2020'
ORDER BY s.mkill DESC
LIMIT 5;''', con=co) # les 5 pays où le nombre de personnes travaillant dans les médias tuées en 2020 est le plus élevé
plt.plot(df['nom'], df['personnes_tues'],'b')
plt.plot(df['nom'], df['personnes_tues'],'xg')
plt.title("les 5 pays où le nombre de personnes travaillant dans les médias tuées en 2020 est le plus élevé")
plt.show() # Affichage
# Affichage du message d'erreur en cas de probl ème de connexion
except(Exception, pg.DatabaseError) as error :
print(error)
# Attention ! Toujours fermer la connexion lorsqu 'on en a plus besoin
finally:
if co is not None:
co.close()