PyLab
Pylab
Criando gráficos customizados com PyLab
Importando o pylab para utilização
from pylab import *
%matplotlib inline
Gráfico de Linha
Criando o gráfico de linha
# Dados
x = linspace(0,5,10)
y = x ** 2
# Cria a figura, ou seja a área de plotagem
fig = plt.figure()
# Definindo a escala dos eixos
axes= fig.add_axes([0,0,0.8,0.8])
# Cria o plot
axes.plot(x,y,'r')
# Definindo labels e título
axes.set_xlabel('x')
axes.set_ylabel('y')
axes.set_title('Gráfico de Linha')
out:

Gráfico de Linha com 2 figuras
Criando um gráfico de linha com duas figuras na mesma área de plotagem
# Gráficos de linha com 2 figuras
# Dados
x = linspace(0, 5, 10)
y = x ** 2
# Cria a figura
fig = plt.figure()
# Cria os eixos
axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # eixos da figura principal
axes2 = fig.add_axes([0.2, 0.5, 0.4, 0.3]) # eixos da figura secundária
# Figura principal, área de plotagem
axes1.plot(x, y, 'r')
axes1.set_xlabel('x')
axes1.set_ylabel('y')
axes1.set_title('Figura Principal')
# Figura secundária, segunda área de plotagem
axes2.plot(y, x, 'g')
axes2.set_xlabel('y')
axes2.set_ylabel('x')
axes2.set_title('Figura Secundária')
Gráfico de linha em Paralelo
Criando um gráfico de linha com outro em paralelo na mesma área de plotagem
# Dados
x = linspace(0,5,10)
y = x ** 2
# Dividindo a área de plotagem em subplots
fig, axes = plt.subplots(nrows = 1, ncols = 2)
# Loop pelos eixos para criar cada plot
for ax in axes:
ax.plot(x,y,'r')
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_title('Título')
# Ajusta o layout
fig.tight_layout()
out:

Gráfico de Linha com diferentes escalas
Criando um gráfico de linha com outro em paralelo com escala diferente
# Dados
x = linspace(0,5,10)
y = x ** 2
# Dividindo a área de plotagem em subplots
fig, axes = plt.subplots(1,2,figsize=(10,4))
#Criando o plot1
axes[0].plot(x,x**2,x, exp(x))
axes[0].set_title('Escala Padrão')
# Cria o plot2
axes[1].plot(x,x**2,x, exp(x))
axes[1].set_yscale("log")
axes[1].set_title("Escala Logaritmica (y)");
out:

Gráfico de Linha com Grid
Criando um gráfico de linha com o grid no fundo
# Dados
x = linspace(0,5,10)
y = x ** 2
# Criando os subplots
fig, axes = plt.subplots(1,2, figsize = (10,3))
# Grid padrão
axes[0].plot(x, x**2, x, x**3, lw=2)
axes[0].grid(True)
# Grid customizado
axes[1].plot(x, x**2, x, x**3, lw=2)
axes[1].grid(color = 'b', alpha=0.7, linestyle = 'dashed', linewidth = 0.8)
out:

Diferentes Estilos de Plot na mesma Área
Criando 4 gráficos de estilos diferentes na mesma área de plotagem
# Dados
xx = np.linspace(-0.75, 1., 100)
n = np.array([0,1,2,3,4,5])
# Subplots
fig, axes = plt.subplots(1, 4, figsize=(12,3))
# Plot 1
axes[0].scatter(xx, xx + 0.25 * randn(len(xx)), color="black")
axes[0].set_title("scatter")
# Plot 2
axes[1].step(n, n ** 2, lw=2, color="blue")
axes[1].set_title("step")
# Plot 3
axes[2].bar(n, n ** 2, align="center", width=0.5, alpha=0.5, color="magenta")
axes[2].set_title("bar")
# Plot 4
axes[3].fill_between(x, x ** 2, x ** 3, alpha=0.5, color="green")
axes[3].set_title("fill_between")
out:

Histogramas
Criando dois histogramas na mesma área de plotagem
# Dados
n = np.random.randn(100000)
# cria os subplots
fig, axes = plt.subplots(1,2,figsize=(12,4))
# Plot 1
axes[0].hist(n)
axes[0].set_title('Histograma Padrão')
axes[0].set_xlim((min(n), max(n)))
# Plot 2
axes[1].hist(n, cumulative = True, bins = 50)
axes[1].set_title('Histograma Cumulativo')
axes[1].set_xlim((min(n), max(n)))
Gráficos 3D
Importando o pacote toolkits Axes3D para utilização
from mpl_toolkits.mplot3d.axes3d import Axes3D
Criando a função para mapear as cores e os dados
# Dados
alpha = 0.7
phi_ext = 2 * np.pi * 0.5
# Função para um mapa de cores
def ColorMap(phi_m, phi_p):
return (+ alpha - 2 * np.cos(phi_p)*cos(phi_m) - alpha * np.cos(phi_ext - 2*phi_p))
# Mais dados
phi_m = np.linspace(0,2*np.pi,100)
phi_p = np.linspace(0,2*np.pi,100)
X,Y = np.meshgrid(phi_p,phi_m)
Z = ColorMap(X,Y).T
Criando a figura de plotagem
# Cria a figura
fig = plt.figure(figsize=(14,6))
# Adiciona o subplot 1 com projeção 3d
ax = fig.add_subplot(1, 2, 1, projection='3d')
p = ax.plot_surface(X, Y, Z, rstride=4, cstride=4, linewidth=0)
# Adiciona o subplot 2 com projeção 3d
ax = fig.add_subplot(1, 2, 2, projection='3d')
p = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False)
# Cria a barra de cores como legenda
cb = fig.colorbar(p, shrink=0.5)
out:

É um gráfico visualmente atrativo, porém, para a análise do mesmo se torna um pouco mais difícil. Mas para uma apresentação dos dados, é uma boa opção, como foi dito, TUDO DEPENDE!