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