0% acharam este documento útil (0 voto)
14 visualizações3 páginas

Análise Estatística com Tkinter e Matplotlib

import numpy as np, phyton

Enviado por

suellenrocha809
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
14 visualizações3 páginas

Análise Estatística com Tkinter e Matplotlib

import numpy as np, phyton

Enviado por

suellenrocha809
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd

 import numpy as np : Importa a biblioteca NumPy, que é utilizada

para manipulação de arrays e funções matemáticas.


 import matplotlib.pyplot as plt : Importa a biblioteca Matplotlib, que
é utilizada para a geração de gráficos.
 from tkinter import Tk, Label, Entry, Button, Frame, ttk, filedialog :
Importa classes e funções específicas da biblioteca Tkinter, que é
utilizada para criar a interface gráfica.
 from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg :
Importa a classe FigureCanvasTkAgg do Matplotlib, que é utilizada
para exibir gráficos dentro de aplicações Tkinter.

 def gerar_dados_gaussiano_em_torno_de(valor_esperado,
desvio_padrao) : Define uma função que gera dados de uma
distribuição gaussiana em torno de um valor esperado dado.
 num_amostras = 1000 : Define o número de amostras como 1000.
 desvio_padao=0.5 : Esta linha parece ter um erro de digitação, pois
está definindo uma variável desvio_padao que não está sendo
utilizada. Talvez a intenção fosse definir o desvio padrão como 0.5,
mas como o desvio padrão é passado como argumento para a
função, isso não é necessário aqui.
 return np.random.normal(valor_esperado, desvio_padrao,
num_amostras): Retorna um array de números aleatórios gerados
seguindo uma distribuição gaussiana com média valor_esperado e
desvio padrão desvio_padrao, com o número de amostras
especificado por num_amostras.

 def calcular_estatisticas_e_plotar(valor_esperado, desvio_padrao) :


Define uma função que calcula estatísticas e plota um gráfico.
 dados = gerar_dados_gaussiano_em_torno_de(valor_esperado,
desvio_padrao) : Gera os dados seguindo uma distribuição gaussiana
com o valor esperado e desvio padrão especificados.
 media = np.mean(dados) : Calcula a média dos dados.
 desvio_padrao_amostral = np.std(dados) : Calcula o desvio padrão
amostral dos dados.

 tabela.insert("", "end", values=[f"{media:.1f}",


f"{desvio_padrao_amostral:.2f}"]) : Insere os valores da média e do
desvio padrão amostral na tabela.
 tabela.column("#0", anchor="center") : Centraliza a primeira coluna
da tabela.
 tabela.column("media", anchor="center") : Centraliza a coluna
"media" da tabela.
 tabela.column("desvio_padrao_amostral", anchor="center") :
Centraliza a coluna "desvio_padrao_amostral" da tabela.

 fig, ax = plt.subplots(figsize=(8, 6)) : Cria uma nova figura e eixos


para o gráfico com o tamanho especificado.
 ax.hist(dados, bins=30, density=True, alpha=0.6, color='g') : Plota
um histograma dos dados.
 xmin, xmax = ax.get_xlim() : Obtém os limites do eixo x do gráfico.
 x = np.linspace(xmin, xmax, 100) : Cria um array de valores de x
uniformemente espaçados entre xmin e xmax.
 p = np.exp(-(x - valor_esperado)**2 / (2 * desvio_padrao**2)) /
(desvio_padrao * np.sqrt(2 * np.pi)) : Calcula a função de densidade
de probabilidade para uma distribuição gaussiana.
 ax.plot(x, p, 'k', linewidth=2) : Plota a função de densidade de
probabilidade no gráfico.
 ax.set_title('Histograma e Distribuição Gaussiana') : Define o título do
gráfico.
 ax.set_xlabel('Valor') : Define o rótulo do eixo x do gráfico.
 ax.set_ylabel('Frequência') : Define o rótulo do eixo y do gráfico.

Verifica se já existe um canvas (área onde o gráfico é exibido) e o destroi, se


existir.

 Cria um novo canvas de gráfico utilizando a classe


FigureCanvasTkAgg , com base na figura criada anteriormente.
 Desenha o gráfico no canvas.
 Empacota o canvas na interface gráfica.

Empacota o botão de salvar gráfico na interface gráfica.

 Define uma função para salvar o gráfico como um arquivo de


imagem PNG.
 Abre uma janela de diálogo para selecionar o local e o nome do
arquivo de imagem.
 Se o usuário selecionar um local e nome de arquivo, o gráfico será
salvo como um arquivo PNG nesse local.

 Cria uma nova janela principal utilizando a classe Tk do Tkinter.


 Define o título da janela como "Análise Estatística de Distribuição
Gaussiana".
 Define o tamanho da janela como 900 pixels de largura por 1000
pixels de altura.

Cria rótulos e campos de entrada para o valor esperado (média) e o desvio


padrão na interface gráfica.

 Cria um botão para calcular estatísticas e plotar o gráfico.


 O argumento command define que a função
calcular_estatisticas_e_plotar será chamada quando o botão for
clicado.
 Utiliza expressões lambda para passar os valores dos campos de
entrada como argumentos para a função.
 Cria um frame para conter a tabela.
 Define a altura do frame e empacota na interface gráfica.
 Cria uma tabela utilizando a classe ttk.Treeview do Tkinter.
 Define as colunas da tabela e os cabeçalhos das colunas.
 Define a altura da tabela e empacota na interface gráfica.

 Cria um frame para conter o gráfico.


 Empacota o frame na interface gráfica.
 Cria um botão para salvar o gráfico.
 Define que a função salvar_grafico será chamada quando o botão
for clicado.

Inicia o loop principal da interface gráfica, onde a aplicação começa a responder


aos eventos do usuário.

Você também pode gostar