sns example cmap annot python matplotlib plot heatmap

python - example - Cómo trazar los colores del mapa de calor en 3D en Matplotlib



seaborn heatmap (1)

Sí, algo como esto:

actualizar aquí es una versión con una barra de color.

import numpy as np from pylab import * 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(figsize=(8,6)) ax = fig.add_subplot(111,projection=''3d'') n = 100 xs = randrange(n, 23, 32) ys = randrange(n, 0, 100) zs = randrange(n, 0, 100) colmap = cm.ScalarMappable(cmap=cm.hsv) colmap.set_array(zs) yg = ax.scatter(xs, ys, zs, c=cm.hsv(zs/max(zs)), marker=''o'') cb = fig.colorbar(colmap) ax.set_xlabel(''X Label'') ax.set_ylabel(''Y Label'') ax.set_zlabel(''Z Label'') plt.show()

parece:

actualización Aquí hay un ejemplo explícito de colorear sus puntos de datos por algún atributo de cuarta dimensión.

import numpy as np from pylab import * 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(figsize=(8,6)) ax = fig.add_subplot(111,projection=''3d'') n = 100 xs = randrange(n, 0, 100) ys = randrange(n, 0, 100) zs = randrange(n, 0, 100) the_fourth_dimension = randrange(n,0,100) colors = cm.hsv(the_fourth_dimension/max(the_fourth_dimension)) colmap = cm.ScalarMappable(cmap=cm.hsv) colmap.set_array(the_fourth_dimension) yg = ax.scatter(xs, ys, zs, c=colors, marker=''o'') cb = fig.colorbar(colmap) ax.set_xlabel(''X Label'') ax.set_ylabel(''Y Label'') ax.set_zlabel(''Z Label'') plt.show()

Estoy usando Matplotlib 3D para trazar 3 dimensiones de mi conjunto de datos como a continuación:

Pero ahora también quiero visualizar una 4ª dimensión (que es un valor escalar entre 0 y 20) como un mapa de calor. Entonces, básicamente, quiero que cada punto tome su color en función del valor de esta cuarta dimensión.

¿Existe tal cosa en Matplotlib? ¿Cómo puedo convertir un grupo de números entre [0-20] a colores de mapa de calor?

Tomé el código desde aquí: http://matplotlib.org/mpl_examples/mplot3d/scatter3d_demo.py