import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# Dados fornecidos manualmente para cada grupo
data_Deceased = [15.99,15.99,16.54,16.56,16.61,17.68,17.70,17.72,17.94,19.04,19.05,19.47,19.52,19.89,20.84,21.00,21.10,21.30,21.41,22.60,22.87,23.44,23.61,23.82,24.23,24.74,25.38,25.83,25.92,25.95,26.72,26.74,26.76,26.83,27.41,27.48,27.67,27.95,28.78,30.17,31.74,31.85,32.30,33.65,34.97,35.63,36.22,36.24,36.97,38.16,41.88]
data_Survived = [15.29,15.52,15.61,15.86,16.00,16.24,16.37,16.52,17.17,17.40,17.46,17.50,17.64,18.16,18.83,18.95,19.12,19.63,19.79,19.80,19.97,20.03,20.85,21.32,21.53,21.93,22.17,22.54,22.65,22.82,23.08,23.48,23.86,24.07,24.10,24.16,24.85,25.98,26.79,26.85,27.04,28.32,30.33,30.75,32.31,32.94,36.73,37.54,38.48,43.41]
# Criar DataFrame
df_Deceased = pd.DataFrame(data_Deceased, columns=['Values'])
df_Deceased['Death'] = 'Deceased'
df_Survived = pd.DataFrame(data_Survived, columns=['Values'])
df_Survived['Death'] = 'Survived'
# Combinar os DataFrames
df = pd.concat([df_Deceased, df_Survived], ignore_index=True)
# Criar o gráfico violino
plt.figure(figsize=(10, 6))
sns.violinplot(data=df, x='Death', y='Values', inner=None, color='lightblue')
# Adicionar pontos dispersos com transparência
sns.stripplot(data=df, x='Death', y='Values', color='black', alpha=0.5, size=5)
# Adicionar o box plot no centro
sns.boxplot(data=df, x='Death', y='Values', width=0.3, color='white', fliersize=0)
# Configurações do gráfico
plt.title('EAT≥15')
plt.xlabel('Death')
plt.ylabel('EAT(cm²)')
plt.grid(True)
plt.show()import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# Dados fornecidos manualmente para cada grupo
data_Deceased = [15.99,15.99,16.54,16.56,16.61,17.68,17.70,17.72,17.94,19.04,19.05,19.47,19.52,19.89,20.84,21.00,21.10,21.30,21.41,22.60,22.87,23.44,23.61,23.82,24.23,24.74,25.38,25.83,25.92,25.95,26.72,26.74,26.76,26.83,27.41,27.48,27.67,27.95,28.78,30.17,31.74,31.85,32.30,33.65,34.97,35.63,36.22,36.24,36.97,38.16,41.88]
data_Survived = [15.29,15.52,15.61,15.86,16.00,16.24,16.37,16.52,17.17,17.40,17.46,17.50,17.64,18.16,18.83,18.95,19.12,19.63,19.79,19.80,19.97,20.03,20.85,21.32,21.53,21.93,22.17,22.54,22.65,22.82,23.08,23.48,23.86,24.07,24.10,24.16,24.85,25.98,26.79,26.85,27.04,28.32,30.33,30.75,32.31,32.94,36.73,37.54,38.48,43.41]
# Criar DataFrame
df_Deceased = pd.DataFrame(data_Deceased, columns=['Values'])
df_Deceased['Death'] = 'Deceased'
df_Survived = pd.DataFrame(data_Survived, columns=['Values'])
df_Survived['Death'] = 'Survived'
# Combinar os DataFrames
df = pd.concat([df_Deceased, df_Survived], ignore_index=True)
# Criar o gráfico violino
plt.figure(figsize=(10, 6))
sns.violinplot(data=df, x='Death', y='Values', inner=None, color='lightblue')
# Adicionar pontos dispersos com transparência
sns.stripplot(data=df, x='Death', y='Values', color='black', alpha=0.5, size=5)
# Adicionar o box plot no centro
sns.boxplot(data=df, x='Death', y='Values', width=0.3, color='white', fliersize=0)
# Configurações do gráfico
plt.title('EAT≥15')
plt.xlabel('Death')
plt.ylabel('EAT(cm²)')
plt.grid(True)
plt.show()import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# Dados fornecidos manualmente para cada grupo
data_Deceased = [1.60,3.19,3.93,4.90,5.56,5.67,6.36,6.74,6.93,7.01,7.08,7.77,8.12,8.14,8.43,8.65,8.80,9.38,9.49,9.53,9.78,9.83,9.89,10.14,10.58,11.10,11.45,11.59,11.60,11.64,11.95,12.20,12.41,12.67,12.83,13.17,13.18,13.60,13.66,13.74,14.78,14.83]
data_Survived = [1.79,2.75,3.13,3.13,3.40,3.41,3.45,3.63,3.94,4.29,4.53,4.76,5.18,5.37,5.67,5.84,5.96,6.12,6.37,6.50,6.99,7.02,7.04,7.10,7.54,7.56,7.65,8.34,8.39,8.73,8.96,9.10,9.30,9.33,9.71,9.87,10.06,10.10,10.14,10.15,10.30,10.57,10.61,10.82,10.92,11.61,11.71,11.89,12.09,12.60,12.77,13.42,13.47,13.83,13.84,14.15,14.20,14.68,14.75,14.79,14.83]
# Criar DataFrame
df_Deceased = pd.DataFrame(data_Deceased, columns=['Values'])
df_Deceased['Death'] = 'Deceased'
df_Survived = pd.DataFrame(data_Survived, columns=['Values'])
df_Survived['Death'] = 'Survived'
# Combinar os DataFrames
df = pd.concat([df_Deceased, df_Survived], ignore_index=True)
# Criar o gráfico violino
plt.figure(figsize=(10, 6))
sns.violinplot(data=df, x='Death', y='Values', inner=None, color='lightblue')
# Adicionar pontos dispersos com transparência
sns.stripplot(data=df, x='Death', y='Values', color='black', alpha=0.5, size=5)
# Adicionar o box plot no centro
sns.boxplot(data=df, x='Death', y='Values', width=0.3, color='white', fliersize=0)
# Configurações do gráfico
plt.title('EAT<15')
plt.xlabel('Death')
plt.ylabel('EAT(cm²)')
plt.grid(True)
plt.show()import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
# Gerar dados de exemplo
np.random.seed(42)
data = {
'Values': np.random.uniform(1.79, 14.83, 100),
'Death': np.random.choice(['Yes', 'No'], 100),
'EAT': np.random.choice(['EAT<15', 'EAT≥15'], 100)
}
# Criar um DataFrame
df = pd.DataFrame(data)
# Configurar o tamanho da figura para comportar quatro gráficos
plt.figure(figsize=(12, 10))
# Gráfico 1: Death='Yes' e EAT='EAT<15'
plt.subplot(2, 2, 1)
sns.violinplot(data=df[(df['Death'] == 'Yes') & (df['EAT'] == 'EAT<15')], y='Values', inner=None, color='lightblue')
sns.stripplot(data=df[(df['Death'] == 'Yes') & (df['EAT'] == 'EAT<15')], y='Values', color='black', alpha=0.5, size=5)
sns.boxplot(data=df[(df['Death'] == 'Yes') & (df['EAT'] == 'EAT<15')], y='Values', width=0.3, color='white', fliersize=0)
plt.title('Death: Yes, EAT: <15')
plt.xlabel('Densidade')
plt.ylabel('Valores')
# Gráfico 2: Death='No' e EAT='EAT<15'
plt.subplot(2, 2, 2)
sns.violinplot(data=df[(df['Death'] == 'No') & (df['EAT'] == 'EAT<15')], y='Values', inner=None, color='lightblue')
sns.stripplot(data=df[(df['Death'] == 'No') & (df['EAT'] == 'EAT<15')], y='Values', color='black', alpha=0.5, size=5)
sns.boxplot(data=df[(df['Death'] == 'No') & (df['EAT'] == 'EAT<15')], y='Values', width=0.3, color='white', fliersize=0)
plt.title('Death: No, EAT: <15')
plt.xlabel('Densidade')
plt.ylabel('Valores')
# Gráfico 3: Death='Yes' e EAT='EAT≥15'
plt.subplot(2, 2, 3)
sns.violinplot(data=df[(df['Death'] == 'Yes') & (df['EAT'] == 'EAT≥15')], y='Values', inner=None, color='lightblue')
sns.stripplot(data=df[(df['Death'] == 'Yes') & (df['EAT'] == 'EAT≥15')], y='Values', color='black', alpha=0.5, size=5)
sns.boxplot(data=df[(df['Death'] == 'Yes') & (df['EAT'] == 'EAT≥15')], y='Values', width=0.3, color='white', fliersize=0)
plt.title('Death: Yes, EAT: ≥15')
plt.xlabel('Densidade')
plt.ylabel('Valores')
# Gráfico 4: Death='No' e EAT='EAT≥15'
plt.subplot(2, 2, 4)
sns.violinplot(data=df[(df['Death'] == 'No') & (df['EAT'] == 'EAT≥15')], y='Values', inner=None, color='lightblue')
sns.stripplot(data=df[(df['Death'] == 'No') & (df['EAT'] == 'EAT≥15')], y='Values', color='black', alpha=0.5, size=5)
sns.boxplot(data=df[(df['Death'] == 'No') & (df['EAT'] == 'EAT≥15')], y='Values', width=0.3, color='white', fliersize=0)
plt.title('Death: No, EAT: ≥15')
plt.xlabel('Densidade')
plt.ylabel('Valores')
plt.tight_layout()
plt.show()import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# Dados fornecidos
data = [1.79,2.75,3.13,3.13,3.40,3.41,3.45,3.63,3.94,4.29,4.53,4.76,5.18,5.37,
5.67,5.84,5.96,6.12,6.37,6.50,6.99,7.02,7.04,7.10,7.54,7.56,7.65,8.34,
8.39,8.73,8.96,9.10,9.30,9.33,9.71,9.87,10.06,10.10,10.14,10.15,10.30,
10.57,10.61,10.82,10.92,11.61,11.71,11.89,12.09,12.60,12.77,13.42,13.47,
13.83,13.84,14.15,14.20,14.68,14.75,14.79,14.83]
# Criar um DataFrame
df = pd.DataFrame(data, columns=['Values'])
# Criar o gráfico violino
plt.figure(figsize=(6, 12))
sns.violinplot(data=df, y='Values', inner=None, color='lightblue')
# Adicionar pontos dispersos com transparência
sns.stripplot(data=df, y='Values', color='black', alpha=0.5, size=5)
# Adicionar o box plot no centro
sns.boxplot(data=df, y='Values', width=0.3, color='white', fliersize=0)
# Configurações do gráfico
plt.title('Gráfico Violino com Pontos Dispersos e Box Plot')
plt.ylabel('Valores')
plt.xlabel('Densidade')
plt.grid(True)
plt.show()import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# Dados fornecidos
data = [1.79,2.75,3.13,3.13,3.40,3.41,3.45,3.63,3.94,4.29,4.53,4.76,5.18,5.37,
5.67,5.84,5.96,6.12,6.37,6.50,6.99,7.02,7.04,7.10,7.54,7.56,7.65,8.34,
8.39,8.73,8.96,9.10,9.30,9.33,9.71,9.87,10.06,10.10,10.14,10.15,10.30,
10.57,10.61,10.82,10.92,11.61,11.71,11.89,12.09,12.60,12.77,13.42,13.47,
13.83,13.84,14.15,14.20,14.68,14.75,14.79,14.83]
# Criar um DataFrame
df = pd.DataFrame(data, columns=['Values'])
# Criar o gráfico violino
plt.figure(figsize=(12, 6))
sns.violinplot(data=df, x='Values', inner=None, color='lightblue')
# Adicionar pontos dispersos com transparência
sns.stripplot(data=df, x='Values', color='black', alpha=0.5, size=5)
# Adicionar o box plot no centro
sns.boxplot(data=df, x='Values', width=0.3, color='white', fliersize=0)
# Configurações do gráfico
plt.title('Gráfico Violino com Pontos Dispersos e Box Plot')
plt.xlabel('Valores')
plt.ylabel('Densidade')
plt.grid(True)
plt.show()import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
def criar_grafico_violino():
# Solicitar ao usuário para inserir dados
print("Por favor, insira seus dados.")
print("Digite os valores separados por vírgula (por exemplo, 1,2,3,4):")
dados_input = input()
dados_lista = [float(valor) for valor in dados_input.split(",")]
# Criar um DataFrame com os dados
df = pd.DataFrame(dados_lista, columns=["Valores"])
# Criar o gráfico de violino
plt.figure(figsize=(8, 6))
sns.violinplot(data=df, y="Valores")
plt.title("Gráfico de Violino")
plt.ylabel("Valores")
plt.xlabel("Distribuição")
# Mostrar o gráfico
plt.show()
if __name__ == "__main__":
criar_grafico_violino()Por favor, insira seus dados. Digite os valores separados por vírgula (por exemplo, 1,2,3,4):
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
def calcular_estatisticas(dados):
"""Calcula estatísticas principais: Q1, Q3, mediana, limites inferior e superior."""
quartis = np.percentile(dados, [25, 50, 75])
q1, mediana, q3 = quartis
iqr = q3 - q1 # Intervalo interquartil
limite_inferior = q1 - 1.5 * iqr
limite_superior = q3 + 1.5 * iqr
return q1, mediana, q3, limite_inferior, limite_superior
def criar_grafico_violino(dados):
# Criar DataFrame a partir dos dados
df = pd.DataFrame(dados, columns=["Valores"])
# Calcular estatísticas
q1, mediana, q3, limite_inferior, limite_superior = calcular_estatisticas(df["Valores"])
# Configurar o estilo do gráfico
sns.set(style="whitegrid")
palette = sns.color_palette("pastel") # Paleta de cores moderna
# Configurar o gráfico
plt.figure(figsize=(12, 8))
# Criar gráfico de violino com bw=0.1 e gradiente moderno
sns.violinplot(data=df, y="Valores", inner=None, color=palette[1], bw=0.1, linewidth=1.5)
# Adicionar pontos de dispersão
sns.stripplot(data=df, y="Valores", color='k', alpha=0.6, jitter=True)
# Adicionar linhas para os quartis, mediana e limites
plt.axhline(q1, color='r', linestyle='--', linewidth=1.5, label='1° Quartil (Q1)')
plt.axhline(mediana, color='b', linestyle='-', linewidth=2, label='Mediana')
plt.axhline(q3, color='r', linestyle='--', linewidth=1.5, label='3° Quartil (Q3)')
plt.axhline(limite_inferior, color='g', linestyle=':', linewidth=1.5, label='Limite Inferior')
plt.axhline(limite_superior, color='g', linestyle=':', linewidth=1.5, label='Limite Superior')
# Adicionar legenda
plt.legend()
# Títulos e rótulos
plt.title("Gráfico de Violino com Pontos de Dispersão e Estatísticas", fontsize=16, fontweight='bold')
plt.ylabel("Valores", fontsize=14)
plt.xlabel("Distribuição", fontsize=14)
# Ajustar o design
sns.despine() # Remove as bordas superior e direita
plt.grid(True, linestyle='--', alpha=0.7) # Adiciona uma grade suave
# Mostrar gráfico
plt.show()
def ler_dados_do_excel(caminho_arquivo_excel, nome_planilha, coluna_dados):
# Ler dados do arquivo Excel
df = pd.read_excel(caminho_arquivo_excel, sheet_name=nome_planilha, usecols=[coluna_dados])
return df[coluna_dados].dropna().tolist()
if __name__ == "__main__":
# Entrada de dados manual ou via Excel
escolha = input("Você quer inserir os dados manualmente ou ler de um arquivo Excel? (manual/excel): ").strip().lower()
if escolha == "manual":
print("Por favor, insira seus dados separados por vírgula (por exemplo, 1,2,3,4):")
dados_input = input()
dados_lista = [float(valor) for valor in dados_input.split(",")]
criar_grafico_violino(dados_lista)
elif escolha == "excel":
caminho_arquivo_excel = input("Por favor, insira o caminho do arquivo Excel: ").strip()
nome_planilha = input("Por favor, insira o nome da planilha: ").strip()
coluna_dados = input("Por favor, insira a letra da coluna de dados (por exemplo, A): ").strip()
dados_lista = ler_dados_do_excel(caminho_arquivo_excel, nome_planilha, coluna_dados)
criar_grafico_violino(dados_lista)
else:
print("Escolha inválida. Por favor, tente novamente.")Por favor, insira seus dados separados por vírgula (por exemplo, 1,2,3,4):
script.py:30: FutureWarning: The `bw` parameter is deprecated in favor of `bw_method`/`bw_adjust`. Setting `bw_method=0.1`, but please see docs for the new parameters and update your code. This will become an error in seaborn v0.15.0. sns.violinplot(data=df, y="Valores", inner=None, color=palette[1], bw=0.1, linewidth=1.5)