Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvidas Alterar tamanho e escala

Tudo bom? Estou tentando alterar algumas características do gráfico e não esta funcionando. Tentei o seguinte código:

import matplotlib.pyplot as plt
plt.hist(medias_por_filme)
plt.title("Histograma das médias dos filmes")
plt.figure( figsize=(20, 18)) # alterar tamanho
plt.xticks([0.5,1,1.5,..., 5]) # mudar escala do eixo X

Pelo que entendi, o "figure" deveria alterar o tamanho do gráfico, tal qual fez com o sns.bloxplot, pois o matplotlib é a base que tanto o Pandas quanto o Seaborn utilizam para gerarem seus gráficos.

O "xtickc" deveria mudar a escala do eixo X, certo? De modo a, no caso, colocar os valores entre cada inteiro. Por exemplo, .. , 3, 3.5, 4, 4.5, ..

Todavia, minha saída é um erro e o gráfico do "medias_por_filme" no tamanho "normal" e outro gráfico abaixo maior e sem conteúdo.

Pelo que vejo são os mesmos comandos: Manual: https://pandas.pydata.org/pandas-docs/version/0.23/generated/pandas.DataFrame.plot.html

Video youtube: https://www.youtube.com/watch?v=aS4WlOJQ4mQ

1 resposta
solução!

Olá Thales, tudo bem!

Antes de tudo o array do xticks vai retornar um erro por causa dos três pontos (...):

# Original
plt.xticks([0.5,1,1.5,..., 5]) # mudar escala do eixo X

# Correto
plt.xticks([0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5]) # mudar escala do eixo X

# Mais uma opção
plt.xticks(range(1, 6)) # mudar escala do eixo X

Como você disse no figure é possível mudar o tamanho do gráfico, mas um detalhe é que quando você executa o .figure() uma nova figura é criada, por isso você pode ver que além do gráfico inicial criado em plt.hist() é criado um segundo gráfico:

Para evitar isso é simples, você pode colocar o .figure() no início ou utilizar o .gcf().set_size_inches()

# Opção 1
plt.figure( figsize=(20, 18)) # alterar tamanho
plt.hist(medias_por_filme)
plt.title("Histograma das médias dos filmes")
plt.xticks(range(1, 6)) # mudar escala do eixo X

# Opção 2
plt.hist(medias_por_filme)
plt.title("Histograma das médias dos filmes")
plt.gcf().set_size_inches(20, 18) # alterar tamanho
plt.xticks(range(1, 6)) # mudar escala do eixo X