#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sun Oct 27 19:30:17 2024

@author: ojacques
"""

import numpy as np
import pandas as pd
from scipy.stats import norm
import matplotlib.pyplot as plt


listaNotas=[1.2,3.5,4.5,5.0,5.2,4.0,5.0,8.0,7.0,7.0,6.0,4.3,7.1,5.4]
df=pd.DataFrame(listaNotas,columns=['Notas'])
#df.describe():conta, media, desvio padrão, minimo, 1 quartil, 2 quartil, 3 quartil, maximo
#arrayNp=df.to_numpy
media=np.mean(listaNotas)
desvPad=np.std(listaNotas)

nota=5
#--------Encontrando a probabilidade da nota------------------------
p=norm.pdf(nota,loc=media,scale=desvPad)
#-----------------------------outro modo de calcular--------------------------
#cria o objeto gaussiana de distribuição, o que permite reuso
#gaussiana=stats.norm(media,desvPad)
#chama o método pdf 
#p=gaussiana.pdf()
#Veja que pode também chamar 
#p=stats.norm(media,desvPad).pdf(nota)
#-----------gerando a fdp de notas só para ter um gráfico----------------------
x=np.linspace(0,10)   #gera 50 números de 0 a 10. Veja também arrange
y=norm.pdf(x, loc=media, scale=desvPad)
plt.plot(x,y)
plt.axvline(nota,color='r',linestyle='--')
plt.text(nota,p,f' Probabilidade: {p:.2f}',color='red')
plt.grid()
plt.show()
 
print(f'A probabilidade de tirar nota {nota:.1f} é {p*100:.2f} %')
