Visualização de dados 3D em Python
No post anterior fiz uma breve introdução ao Matplotlib, que é uma biblioteca para visualização de dados do python. Também demonstrei como criar gráficos 2D de uma forma simples e com poucos comandos. Esta mesma biblioteca permite também criar gráficos mais sofisticados e em 3D.
Para criar os gráficos em 3D, existe um pacote de ferramentas do Matplotlib, o mplot3d e será utilizado a sua função axes3d. Será utilizado também o PyPlot que é um módulo do Matplotlib para criação de gráficos. Para deixar os gráficos mais amigáveis será utilizado o pacote cm, que disponibiliza um mapa com diversas cores.
Nos exemplos a seguir será utilizada a versão 3 do Python e a distribuição Anaconda, assim o ambiente será instalado de forma completa, pois ao utilizar esta distribuição já terá o Python e as bibliotecas necessárias instaladas.
Exemplo básico de um gráfico 3D wireframe plot
# Importando as bibliotecas necessárias
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
# Criando a figura e projeção em 3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# Utilizando dados de teste
X, Y, Z = axes3d.get_test_data(0.10)
# Criando um Plot básico
ax.plot_wireframe(X, Y, Z, rstride=15, cstride=15)
# Exibindo o gráfico criado
plt.show()
Exemplo de um gráfico Filled contours
# Importando as bibliotecas necessárias from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt from matplotlib import cm # Criando a figura e projeção em 3D fig = plt.figure() ax = fig.gca(projection='3d') # Utilizando dados de teste X, Y, Z = axes3d.get_test_data(0.15) # Criando o gráfico cset = ax.contourf(X, Y, Z, cmap=cm.coolwarm) # Exibindo o gráfico criado plt.show()
Exemplo de um gráfico Plotting Contour – utilizando extend3d
# Importando as bibliotecas necessárias from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt from matplotlib import cm # Criando a figura e projeção em 3D fig = plt.figure() ax = fig.gca(projection='3d') # Utilizando dados de teste X, Y, Z = axes3d.get_test_data(0.05) # Criando o gráfico com extend3d cset = ax.contour(X, Y, Z, extend3d=True, cmap=cm.seismic) # Exibindo o gráfico criado plt.show()
Dicas para utilização de gráficos 3d em Python
Antes de iniciar a criação dos gráficos, sempre deve ser levado em consideração os tipos de dados a serem exibidos e para que serão utilizados. Em alguns casos o gráfico em 3D pode dificultar o entendimento e leitura das informações, pois requer um pouco mais de atenção na análise e conhecimento dos dados apresentados. Nestes casos é necessário analisar a melhor forma de criar as apresentações, pois como visto nos exemplos do post anterior e neste post, podem ser criados de diversas formas e para diversos fins.
Estes e outros exemplos podem ser encontrados na documentação oficial do pacote mpot3d.