/ / Comment colorer une région spécifique (ou une grille) sur un objet 3d (c’est-à-dire une sphère) dans matplotlib3d - python, matplotlib

Comment colorer une région spécifique (ou une grille) sur un objet 3d (c'est-à-dire une sphère) dans matplotlib3d - python, matplotlib

Tout d'abord, je suis désolé pour mon mauvais anglais.

Ma question est de savoir comment je peux colorer une région spécifique avec une couleur différente (ou grille) sur la surface d'une sphère 3D dans matplolib3d.

Tels que cette grille à l'image ci-dessous

Réponses:

0 pour la réponse № 1

Il est possible de colorer des régions spécifiques (cellules) en utilisant le facecolors mot-clé, qui requiert une valeur RVB (A) pour chaque cellule. Vous pouvez soit créer cela manuellement (un shape(z) tableau de valeurs RVB (A)), mais il est également possible d’utiliser une palette de couleurs pour cela. Par exemple, en utilisant l'exemple de globe de matplotlib:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

plt.close("all")

fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")

u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)

x = 10 * np.outer(np.cos(u), np.sin(v))
y = 10 * np.outer(np.sin(u), np.sin(v))
z = 10 * np.outer(np.ones(np.size(u)), np.cos(v))

# When creating `c` from data, `c` needs to be normalized to {0-1}
c = np.zeros_like(z)
c[30:40,30:40] = 1

ax.plot_surface(x, y, z, rstride=2, cstride=2, facecolors=plt.cm.PuBu(c))

entrer la description de l'image ici

Ou, si vous voulez spécifier manuellement une couleur:

c = np.ones((100,100,4))               # shape(z) x 4 array
c[:,:,:] = [0.9, 0.5, 0.1, 1]          # R,G,B,A color globe
c[30:40,30:40,:] = [0.4, 0.3, 0.2, 1]  # R,G,B,A color patch
ax.plot_surface(x, y, z, rstride=2, cstride=2, facecolors=c)

entrer la description de l'image ici