Pré-requisitos: Matplotlib

Usando a biblioteca Matplotlib, podemos traçar o gráfico tridimensional importando o kit de ferramentas mplot3d. Neste gráfico, vamos alterar a espessura da linha de grade em um gráfico de superfície tridimensional. O Surface Plot é o diagrama de dados 3D que mostra a relação funcional entre a variável dependente (Y) e duas variáveis ​​independentes (X e Y) em vez de mostrar os pontos de dados individuais.

As linhas de grade são as linhas que cruzam o gráfico para mostrar as divisões dos eixos. As linhas de grade do gráfico ajudam o visualizador do gráfico a ver qual valor é representado pelo ponto de dados não rotulado específico do gráfico. Ajuda especialmente quando o gráfico é muito complicado de analisar, então, de acordo com a necessidade, podemos ajustar ou alterar a espessura das linhas da grade ou os estilos das linhas da grade.

Abordagem

  • Importe as bibliotecas necessárias.
  • Crie os dados 3D para plotagem.
  • Crie o sistema de coordenadas tridimensional usando ax = matplotlib.pyplot.gca ('projection = 3d') aqui gca significa get current grid e nessa passagem o parâmetro projection = 3d irá gerar o sistema de coordenadas tridimensional .
  • Agora, para alterar a espessura da linha de grade, temos que atualizar as informações dos eixos dos respectivos eixos usando ax.xaxis.update ({'linewidth': 3}) ou qualquer largura de grade que você deseja definir para o eixo x da mesma maneira você pode definir o eixo Y e o eixo Z apenas escrevendo eixo y, eixo z no lugar do eixo x, respectivamente.
  • Se quiser mudar a cor do respectivo eixo basta passar 'color': 'red' no dicionário ax.xaxis.update ({'linewidth': 3, 'color': 'red'}) ou a cor que desejar definir.
  • Agora, depois de fazer as alterações, plote o gráfico de superfície usando ax.plot_surface (x, y, z) nos dados 3D que passam.
  • Defina os rótulos X, Y e Z usando ax.set_xlabel(), ax.set_ylabel(), ax.set_zlabel() na passagem de parâmetro da string.
  • Agora visualize o gráfico usando a função matplotlib.pyplot.show().

Exemplo 1: Alterar a espessura das linhas de grade do eixo X no gráfico de superfície 3D usando Matplotlib.

# importing necessary libraries
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
 
# function to create data for plotting
def data_creation():
   
    # creating 3d data
    x = np.outer(np.linspace(-3, 3, 30), np.ones(30))
    y = x.copy().T # transpose
    z = np.cos(x ** 2 + y ** 2)
    return (x,y,z)
 
# main function
if __name__ == '__main__':
   
    # creating three dimensional co-ordinate system
    ax = plt.gca(projection='3d')
 
    # calling data creation function and storing in
    # the variables
    data_x,data_y,data_z = data_creation()
 
    # changing grid lines thickness of x axis to 3
    ax.xaxis._axinfo["grid"].update({"linewidth":3})
 
    # plotting surface plot
    ax.plot_surface(data_x,data_y,data_z)
 
    # giving label name to x,y and z axis
    ax.set_xlabel("X axis")
    ax.set_ylabel("Y axis")
    ax.set_zlabel("Z axis")
     
    # visualizing the plot
    plt.show()

Saída:

No exemplo acima, alteramos a espessura da linha de grade do eixo X, como você pode ver na figura acima, as linhas de grade do eixo X têm uma linha mais espessa com a cor cinza. Isso pode ser feito atualizando o dicionário _axinfo do respectivo eixo no código de exemplo acima, nosso respectivo eixo é o eixo X.

Exemplo 2: Alterar a espessura das linhas de grade do eixo X no gráfico de superfície 3D usando Matplotlib.

# importing necessary libraries
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
 
# function to create data for plotting
def data_creation():
   
    # creating 3d data
    x = np.outer(np.linspace(-3, 3, 30), np.ones(30))
    y = x.copy().T # transpose
    z = np.cos(x ** 2 + y ** 2)
    return (x,y,z)
 
# main function
if __name__ == '__main__':
    # creating three dimensional co-ordinate system
    ax = plt.gca(projection='3d')
 
    # calling data creation function and storing in the variables
    data_x,data_y,data_z = data_creation()
 
    # changing grid lines thickness of Y axis to 3
    ax.yaxis._axinfo["grid"].update({"linewidth":3})
 
    # plotting surface plot
    ax.plot_surface(data_x,data_y,data_z)
 
    # giving label name to x,y and z axis
    ax.set_xlabel("X axis")
    ax.set_ylabel("Y axis")
    ax.set_zlabel("Z axis")
     
    # visualizing the plot
    plt.show()

Saída:

No exemplo acima, alteramos a espessura da linha de grade do eixo Y, como você pode ver na figura acima, as linhas de grade do eixo Y têm uma linha mais espessa com a cor cinza. Tínhamos definido a espessura da linha de grade do eixo Y como 3.

Exemplo 3: Alterando a espessura das linhas de grade do eixo Z em plotagem de superfície 3D usando Matplotlib.

# importing necessary libraries
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
 
# function to create data for plotting
def data_creation():
    # creating 3d data
    x = np.outer(np.linspace(-3, 3, 30), np.ones(30))
    y = x.copy().T # transpose
    z = np.cos(x ** 2 + y ** 2)
    return (x,y,z)
 
# main function
if __name__ == '__main__':
    # creating three dimensional co-ordinate system
    ax = plt.gca(projection='3d')
 
    # calling data creation function and storing in the variables
    data_x,data_y,data_z = data_creation()
 
    # changing grid lines thickness of Z axis to 3
    ax.zaxis._axinfo["grid"].update({"linewidth":3})
 
    # plotting surface plot
    ax.plot_surface(data_x,data_y,data_z)
 
    # giving label name to x,y and z axis
    ax.set_xlabel("X axis")
    ax.set_ylabel("Y axis")
    ax.set_zlabel("Z axis")
     
    # visualizing the plot
    plt.show()

Saída:

No exemplo acima, alteramos a espessura da linha de grade do eixo Z, como você pode ver na figura acima, as linhas de grade do eixo Z têm uma linha mais espessa com a cor cinza. Tínhamos definido a espessura da linha de grade do eixo Z como 3.

Exemplo 4: Alterando a espessura da linha de grade e a cor de todos os três eixos usando Matplotlib.

# importing necessary libraries
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
 
# function to create data for plotting
def data_creation():
   
    # creating 3d data
    x = np.outer(np.linspace(-3, 3, 30), np.ones(30))
    y = x.copy().T # transpose
    z = np.cos(x ** 2 + y ** 2)
    return (x,y,z)
 
# main function
if __name__ == '__main__':
    # creating three dimensional co-ordinate system
    ax = plt.gca(projection='3d')
 
    # calling data creation function and storing in the variables
    data_x,data_y,data_z = data_creation()
 
    # changing grid lines thickness of x axis to 1
    ax.xaxis._axinfo["grid"].update({"linewidth":1})
 
    # changing grid lines thickness of Y axis to 1 and giving color to red
    ax.yaxis._axinfo["grid"].update({"linewidth":1,'color':'red'})
 
    # changing grid lines thickness of Z axis to 1 and giving color to green
    ax.zaxis._axinfo["grid"].update({"linewidth":1,'color':'green'})
 
    # plotting surface plot
    ax.plot_surface(data_x,data_y,data_z)
 
    # giving label name to x,y and z axis
    ax.set_xlabel("X axis")
    ax.set_ylabel("Y axis")
    ax.set_zlabel("Z axis")
     
    # visualizing the plot
    plt.show()

Saída:

No exemplo acima, definimos a espessura da linha de grade dos eixos X, Y e Z para 1 e alteramos a cor do eixo Y para vermelho e do eixo Z para verde, atualizando o _axinfo e atualizando o dicionário que definimos largura da linha e cor do gráfico 3D.

 Atenção geek! Fortaleça suas bases com o Python Programming Foundation Course e aprenda o básico.