Matplotlib

Matplotlib é uma biblioteca para geração de gráficos 2D em python com uma ótima integração com o Jupyter e uma API simples e similar a do Matlab.


In [ ]:
# permite que os gráficos sejam renderizados no notebook
%matplotlib inline

import matplotlib.pyplot as plt #API para geração de gráficos

Para a geração de simples gráficos de linhas, basta utilizarmos o método plot


In [ ]:
y = [1, 7, 3, 5, 12]
x = [1, 2, 3, 4, 5]
plt.plot(x, y, marker='o');

In [ ]:
plt.plot(x, y, marker='x', c='r') # gráfico vermelho ('r') onde os pontos são 'x' 
plt.grid() # adiciona as guias no gráfico

Para gerar gráficos de dispersão (scatter plot), podemos utilizar o método scatter


In [ ]:
plt.scatter(x, y, marker='x');

Analogamente, para gráficos de barras, usamos o bar


In [ ]:
plt.bar(x, y);

Podemos também personalziar nosso gráfico, definindo um título, rótulos para os eixos, dentre outras opções


In [ ]:
anos = [1950, 1960, 1970, 1980, 1990, 2000, 2010]
pib = [300.2, 543.3, 1075.9, 2862.5, 5979.6, 10289.7, 14958.3]
plt.plot(anos, pib, marker='o')
plt.title('PIB')
plt.xlabel('Ano')
plt.ylabel(u'Bilhões de R$')
plt.grid()

In [ ]:
import numpy as np
r = np.random.rand(100)
_ = plt.hist(r, 30)

Integração com o Pandas

O Pandas já possui um conjunto de operações que permitem a geração de gráficos a partir de Series e DataFrames!


In [ ]:
import pandas as pd
df = pd.read_csv('titanic.csv')
df

Por padrão, se chamarmos o método plot de um DataFrame, ele vai escolher a melhor representação gráfica para suas colunas. No exemplo do Titanic, como muitos dados são quantitativos, ele gera um único gráfico de linhas


In [ ]:
df.head(10).plot()

Podemos também realizar os plots sobre colunas específicas do DataFrame


In [ ]:
df[["Age", "Fare"]].head(10).plot(kind='bar')

Os resultados de operações mais complexas sobre um DataFrame também podem ser plotados em gráficos!


In [ ]:
df['Survived'].apply(lambda s: "Yes" if s == 1 else "No").value_counts().plot(kind='bar')