Matplotlib 3D nuage de points avec la barre de couleur

L'emprunt auprès de la exemple sur le Matplotlib page de documentation et de modifier légèrement le code,

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

def randrange(n, vmin, vmax):
    return (vmax-vmin)*np.random.rand(n) + vmin

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
n = 100
for c, m, zl, zh in [('r', 'o', -50, -25), ('b', '^', -30, -5)]:
    xs = randrange(n, 23, 32)
    ys = randrange(n, 0, 100)
    zs = randrange(n, zl, zh)
    cs = randrange(n, 0, 100)
    ax.scatter(xs, ys, zs, c=cs, marker=m)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

plt.show()

Donnera un nuage de points 3D avec des couleurs différentes pour chaque point (couleurs aléatoires dans cet exemple). Quelle est la bonne façon d'ajouter une barre de couleur à la figure, depuis l'ajout dans plt.colorbar() ou ax.colorbar() ne semble pas fonctionner.

  • qu'est-ce que cs dans votre exemple?
InformationsquelleAutor JC. | 2011-03-31