FAQ sur mplot3d #

En quoi mplot3d est-il différent de Mayavi ? #

Mayavi est une bibliothèque graphique 3D très puissante et fonctionnelle. Pour des scènes 3D avancées et d'excellentes capacités de rendu, il est fortement recommandé d'utiliser Mayavi.

mplot3d était destiné à permettre aux utilisateurs de créer des graphiques 3D simples avec le même "look-and-feel" que les tracés 2D de matplotlib. De plus, les utilisateurs peuvent utiliser la même boîte à outils avec laquelle ils sont déjà familiarisés pour générer leurs tracés 2D et 3D.

Mon tracé 3D ne semble pas correct sous certains angles de vue #

C'est probablement le problème le plus fréquemment signalé avec mplot3d. Le problème est que - sous certains angles de vue - un objet 3D apparaîtrait devant un autre objet, même s'il se trouve physiquement derrière lui. Cela peut entraîner des tracés qui ne semblent pas "physiquement corrects".

Malheureusement, alors que certains travaux sont en cours pour réduire l'occurrence de cet artefact, il s'agit actuellement d'un problème insoluble et ne peut être entièrement résolu tant que matplotlib ne prend pas en charge le rendu graphique 3D.

Le problème se produit en raison de la réduction des données 3D en scalaire 2D + z-order. Une seule valeur représente la 3ème dimension pour toutes les parties d'objets 3D d'une collection. Par conséquent, lorsque les boîtes englobantes de deux collections se croisent, il devient possible que cet artefact se produise. De plus, l'intersection de deux objets 3D (tels que des polygones ou des patchs) ne peut pas être rendue correctement dans le moteur de rendu 2D de matplotlib.

Ce problème ne sera probablement pas résolu tant que la prise en charge d'OpenGL ne sera pas ajoutée à tous les backends (les correctifs sont les bienvenus). D'ici là, si vous avez besoin de scènes 3D complexes, nous vous recommandons d'utiliser MayaVi .

Je n'aime pas la disposition du tracé 3D, comment puis-je changer cela ? #

Historiquement, mplot3d a souffert d'un codage en dur des paramètres utilisés pour contrôler les visuels tels que l'espacement des étiquettes, la longueur des ticks et la largeur des lignes de grille. Des travaux sont en cours pour éliminer ce problème. Pour matplotlib v1.1.0, il existe une manière semi-officielle de modifier ces paramètres. Voir la note dans la mplot3d.axis3dsection de la documentation de l'API mplot3d pour plus d'informations.