Para incluir o terceiro filme ("Grumpier Old Men", ID 3), precisamos expandir nossa query e configurar as bibliotecas.
1. Utilizando Matplotlib O Matplotlib exige que passemos uma lista de arrays/series.
import matplotlib.pyplot as plt
Extraindo as notas do terceiro filme
notas_do_grumpier = notas.query("filmeId==3")["nota"]
Criando o boxplot com Matplotlib
O parâmetro 'patch_artist=True' permite preencher com cor
plt.figure(figsize=(8, 6))
plt.boxplot([notas_do_toy_story, notas_do_jumanji, notas_do_grumpier],
labels=["Toy Story", "Jumanji", "Grumpier Old Men"],
patch_artist=True)
plt.title("Distribuição de Notas (Matplotlib)")
plt.ylabel("Nota")
plt.show()
2. Utilizando Seaborn O Seaborn é mais elegante porque trabalha diretamente com a filtragem do DataFrame
import seaborn as sns
Configurando o tamanho
plt.figure(figsize=(10, 6))
Filtrando os 3 filmes de uma vez usando 'in'
sns.boxplot(data=notas.query("filmeId in [1, 2, 3]"),
x="filmeId",
y="nota",
palette="Set2") # Adicionando cores com uma paleta pronta
Melhorando os rótulos
plt.title("Comparação de Notas: Toy Story vs Jumanji vs Grumpier Old Men")
plt.xticks(ticks=[0, 1, 2], labels=["Toy Story", "Jumanji", "Grumpier Old Men"])
plt.show()