Maison > Article > développement back-end > Comment créer un graphique linéaire tridimensionnel à l'aide de Python et Matplotlib
La technologie d'image tridimensionnelle est l'une des technologies d'affichage informatique les plus avancées au monde. Tout ordinateur ordinaire n'a besoin que d'installer un plug-in pour présenter des produits en trois dimensions dans un navigateur Web. , mais peut également afficher dynamiquement les produits. Le processus de combinaison est particulièrement adapté à la navigation à distance.
L'image tridimensionnelle est visuellement superposée et colorée, et a un fort impact visuel, permettant aux spectateurs de rester longtemps dans la scène et de laisser une profonde impression. Les images tridimensionnelles donnent aux gens une sensation réelle et réaliste, les personnages sont prêts à être vus et ils ont une sensation immersive, qui a une grande valeur d'appréciation artistique.
Tout d'abord, vous devez installer la bibliothèque Matplotlib Vous pouvez utiliser pip :
pip install matplotlib
On suppose que le package d'outils matplotlib a été installé.
Utilisez matplotlib.figure.Figure pour créer un cadre de tracé :
import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = fig.add_subplot(111, projection='3d')
Utilisation de base : ax.plot(x,y,z,label=' ')
Code Comme suit :
import matplotlib as mpl from mpl_toolkits.mplot3d import Axes3D import numpy as np import matplotlib.pyplot as plt mpl.rcParams['legend.fontsize'] = 10 fig = plt.figure() ax = fig.add_subplot(projection='3d') theta = np.linspace(-4 * np.pi, 4 * np.pi, 100) z = np.linspace(-2, 2, 100) r = z ** 2 + 1 x = r * np.sin(theta) y = r * np.cos(theta) ax.plot(x, y, z, label='parametric curve') ax.legend()
L'effet est le suivant :
Syntaxe de base :
ax.scatter(xs, ys, zs, s=20, c=None, deepshade= C'est vrai, *args, *kwargs)
Le code est à peu près le suivant :
xs,ys,zs : données d'entrée
s : taille du point de dispersion
c : couleur, telle que as c = ' r’ est rouge;
deepshase: transparent, True est transparent, la valeur par défaut est True, False est opaque
*args, etc. sont des variables d'expansion, telles que maker = «o’ , alors le résultat de dispersion est la forme o‘ *kwargs
Exemple de code :
from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np def randrange(n, vmin, vmax): ''' Helper function to make an array of random numbers having shape (n, ) with each number distributed Uniform(vmin, vmax). ''' return (vmax - vmin)*np.random.rand(n) + vmin fig = plt.figure() ax = fig.add_subplot(111, projection='3d') n = 100 # For each set of style and range settings, plot n random points in the box # defined by x in [23, 32], y in [0, 100], z in [zlow, zhigh]. for c, m, zlow, zhigh in [('r', 'o', -50, -25), ('b', '^', -30, -5)]: xs = randrange(n, 23, 32) ys = randrange(n, 0, 100) zs = randrange(n, zlow, zhigh) ax.scatter(xs, ys, zs, c=c, marker=m) ax.set_xlabel('X Label') ax.set_ylabel('Y Label') ax.set_zlabel('Z Label') plt.show()4. Tracés tri-surface Utilisation de base : ax.plot_trisurf(*args, **kwargs)
s=Aucun, #Tableau de taille de dispersion scalaire
c=Aucun, #Tableau de séquences de couleurs, séquencenorm=Aucun, #Normalisation Camp de couleurs normalisé
vmin=Aucun, vmax=Aucun, #Correspondant à la plage normalisée ci-dessusverts=Aucun, #
edgecolors=Aucun, #edgecolor)
Exemple de code :
from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(100, projection='3d') # Grab some test data. X, Y, Z = axes3d.get_test_data(0.12) # Plot a basic wireframe. ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10) plt.show()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!