Criar uma Loja Virtual Grátis
Seaborn
Seaborn

Notas

import pandas as pd
import openpyxl
import seaborn as sns
import matplotlib.pyplot as plt

# Burcar Gráfico de Base
gorjeta = sns.load_dataset('tips')

# Print(gorjeta.head())
'''
sns.histplot(gorjeta['total_bill'], kde = True, bins = 30)
plt.show()
'''
'''# Plotagem Combinada
sns.jointplot(x='total_bill', y='tip', data=gorjeta, kind='hex', color='red')
plt.title('Correlação entre conta e gorjeta')
plt.show()

# Plotagem Combinada
sns.jointplot(x='total_bill', y='tip', data=gorjeta, kind='reg', color='red')
plt.title('Correlação entre conta e gorjeta')
plt.show()'''
'''
# Visão Vários Gráficos
sns.pairplot(gorjeta)
plt.show()'''

sns.kdeplot(gorjeta['total_bill'])
plt.show()



ANALIsE RAPIDA CURSO____________________________________________________

import pandas as pd
import matplotlib.pyplot as plt


# Caminho do arquivo CSV
caminho_arquivo = 'vinhos.csv'

# Carregar os dados do CSV em um DataFrame
df = pd.read_csv(caminho_arquivo)

# Exibir as primeiras 5 linhas para verificar
print(df.info())

# Substituir valores NaN por - (se necessário)
df.fillna('-', inplace=True)


df = df.drop(columns=['region_2'])
df = df.drop(columns=['taster_twitter_handle'])
df = df.drop(columns=['Unnamed: 0'])

# Dicionário para renomear as colunas
novo_nome_colunas = {
'country': 'pais',
'description': 'descricao',
'designation': 'designacao',
'points': 'pontos',
'price': 'preco',
'province': 'provincia',
'region_1': 'regiao',
'taster_name': 'degustador',
'title': 'titulo',
'variety': 'variedade',
'winery': 'vinicola'
}

# Renomeando as colunas
df.rename(columns=novo_nome_colunas, inplace=True)


# Exibir o DataFrame com valores substituídos
print(df.info())

# Supondo que seu DataFrame se chama 'df'

# Substituir '-' por NaN nas colunas 'pontos' e 'variedade' para garantir que sejam tratados
df['pontos'] = pd.to_numeric(df['pontos'], errors='coerce') # Converte 'pontos' para numérico e coloca NaN onde houver erro
df['variedade'].replace('-', pd.NA, inplace=True) # Substitui '-' por valores ausentes (pd.NA) na coluna 'variedade'

# Filtrar o DataFrame para remover linhas com valores ausentes nas colunas 'pontos' ou 'variedade'
df_filtered = df.dropna(subset=['pontos', 'variedade'])

# Agrupar por variedade e calcular a média da pontuação
media_pontos_por_variedade = df_filtered.groupby('variedade')['pontos'].mean()

# Ordenar as variedades pela média de pontos de forma decrescente
media_pontos_por_variedade = media_pontos_por_variedade.sort_values(ascending=False)

# Exibir as 10 variedades com maior média
top_10_variedades = media_pontos_por_variedade.head(10)

# Plotando o gráfico
plt.figure(figsize=(10, 6))
top_10_variedades.plot(kind='bar', color='skyblue')
plt.title('Top 10 Variedades de Vinho com Maior Média de Pontuação')
plt.xlabel('Variedade')
plt.ylabel('Média de Pontuação')
plt.xticks(rotation=45, ha='right')
plt.tight_layout()

# Exibir o gráfico
plt.show()





# Supondo que seu DataFrame se chama 'df'

# Substituir '-' por NaN nas colunas 'pontos', 'preco' e 'variedade'
df['pontos'] = pd.to_numeric(df['pontos'], errors='coerce') # Converte 'pontos' para numérico
df['preco'] = pd.to_numeric(df['preco'], errors='coerce') # Converte 'preco' para numérico
df['variedade'].replace('-', pd.NA, inplace=True) # Substitui '-' por NaN na coluna 'variedade'

# Filtrar o DataFrame para remover linhas com valores ausentes nas colunas 'pontos', 'preco' ou 'variedade'
df_filtered = df.dropna(subset=['pontos', 'preco', 'variedade'])

# Plotando o gráfico de dispersão
plt.figure(figsize=(12, 8))

# Usando um gráfico de dispersão onde:
# - Eixo X: Preço
# - Eixo Y: Pontuação
# - A cor representa a variedade
plt.scatter(
df_filtered['preco'], df_filtered['pontos'],
c=df_filtered['variedade'].astype('category').cat.codes, # Codificando a 'variedade' para cores
cmap='viridis', # Usando o mapa de cores 'viridis'
alpha=0.5, # Transparência das bolinhas
s=60 # Tamanho das bolinhas
)

# Adicionando título e rótulos
plt.title('Relação entre Preço e Pontuação de Vinhos por Variedade', fontsize=16)
plt.xlabel('Preço (em unidades monetárias)', fontsize=12)
plt.ylabel('Pontuação (média)', fontsize=12)

# Adicionando uma legenda para as variedades
plt.colorbar(label='Variedade') # A legenda que associa cores com as variedades

# Melhorando a disposição dos rótulos no eixo x
plt.xticks(rotation=45, ha='right')

# Exibindo o gráfico
plt.tight_layout()
plt.show()





# Supondo que seu DataFrame se chama 'df'

# Substituir '-' por NaN nas colunas 'pontos', 'preco' e 'variedade'
df['pontos'] = pd.to_numeric(df['pontos'], errors='coerce') # Converte 'pontos' para numérico
df['preco'] = pd.to_numeric(df['preco'], errors='coerce') # Converte 'preco' para numérico
df['variedade'].replace('-', pd.NA, inplace=True) # Substitui '-' por NaN na coluna 'variedade'

# Filtrar o DataFrame para remover linhas com valores ausentes nas colunas 'pontos', 'preco' ou 'variedade'
df_filtered = df.dropna(subset=['pontos', 'preco', 'variedade'])

# Plotando o gráfico de dispersão com a área de calor
plt.figure(figsize=(12, 8))

# Criar a área de calor (heatmap) com hexágonos
hb = plt.hexbin(df_filtered['preco'], df_filtered['pontos'], gridsize=50, cmap='YlGnBu', mincnt=1)

# Adicionando uma barra de cores para a área de calor (densidade de pontos)
plt.colorbar(hb, label='Densidade de Pontos')

# Plotando as bolinhas (dispersão)
plt.scatter(
df_filtered['preco'], df_filtered['pontos'],
c=df_filtered['variedade'].astype('category').cat.codes, # Codificando a 'variedade' para cores
cmap='viridis', # Usando o mapa de cores 'viridis'
alpha=0.7, # Transparência das bolinhas
s=60 # Tamanho das bolinhas
)

# Adicionando título e rótulos
plt.title('Relação entre Preço e Pontuação de Vinhos por Variedade com Densidade', fontsize=16)
plt.xlabel('Preço (em unidades monetárias)', fontsize=12)
plt.ylabel('Pontuação (média)', fontsize=12)

# Adicionando uma legenda para as variedades
plt.colorbar(label='Variedade') # A legenda que associa cores com as variedades

# Melhorando a disposição dos rótulos no eixo x
plt.xticks(rotation=45, ha='right')

# Exibindo o gráfico
plt.tight_layout()
plt.show()





import numpy as np
from scipy.stats import gaussian_kde

# Supondo que seu DataFrame se chama 'df'

# Substituir '-' por NaN nas colunas 'pontos', 'preco' e 'variedade'
df['pontos'] = pd.to_numeric(df['pontos'], errors='coerce') # Converte 'pontos' para numérico
df['preco'] = pd.to_numeric(df['preco'], errors='coerce') # Converte 'preco' para numérico
df['variedade'].replace('-', pd.NA, inplace=True) # Substitui '-' por NaN na coluna 'variedade'

# Filtrar o DataFrame para remover linhas com valores ausentes nas colunas 'pontos', 'preco' ou 'variedade'
df_filtered = df.dropna(subset=['pontos', 'preco', 'variedade'])

# Coletando as variáveis 'preco' e 'pontos' para o gráfico de densidade
x = df_filtered['preco']
y = df_filtered['pontos']

# Calculando a densidade com gaussian_kde
xy = np.vstack([x, y])
kde = gaussian_kde(xy, bw_method='silverman') # Ajuste na largura de banda (suavização)

# Definir o intervalo de valores para a grade de contorno
xmin, xmax = x.min() - 1, x.max() + 1
ymin, ymax = y.min() - 1, y.max() + 1

# Gerar uma grade de valores para o gráfico de contorno
xi, yi = np.mgrid[xmin:xmax:200j, ymin:ymax:200j] # Aumentando a resolução para 200j
zi = kde(np.vstack([xi.flatten(), yi.flatten()])).reshape(xi.shape)

# Plotando o gráfico de contorno
plt.figure(figsize=(12, 8))

# Criando o gráfico de contorno com a densidade de pontos
contour = plt.contourf(xi, yi, zi, cmap='YlGnBu', levels=50) # Aumentando o número de níveis para mais detalhes
plt.colorbar(contour, label='Densidade de Pontos')

# Plotando as bolinhas (dispersão)
plt.scatter(
df_filtered['preco'], df_filtered['pontos'],
c=df_filtered['variedade'].astype('category').cat.codes, # Codificando a 'variedade' para cores
cmap='viridis', # Usando o mapa de cores 'viridis'
alpha=0.7, # Transparência das bolinhas
s=60 # Tamanho das bolinhas
)

# Adicionando título e rótulos
plt.title('Relação entre Preço e Pontuação de Vinhos por Variedade com Densidade (Contorno)', fontsize=16)
plt.xlabel('Preço (em unidades monetárias)', fontsize=12)
plt.ylabel('Pontuação (média)', fontsize=12)

# Adicionando uma legenda para as variedades
plt.colorbar(label='Variedade') # A legenda que associa cores com as variedades

# Melhorando a disposição dos rótulos no eixo x
plt.xticks(rotation=45, ha='right')

# Exibindo o gráfico
plt.tight_layout()
plt.show()