Matlab: algunos problemas con HeatMap

A continuación encontrará una copia del HeatMap que generé con Matlab. Tengo dos problemas que me gustaría abordar:

1) Como puede ver, el HeatMap tiene solo tres valores diferentes que muestra.

Red   = 500
Green = 0
Black = 250

Desafortunadamente, la barra de colores muestra alrededor de 10 valores diferentes, incluso para colores que no se usan en el mapa de calor. No veo ninguna opción de cómo podría cambiar eso. ¿Alguien sabe cómo puedo personalizar esta barra de colores/etiqueta para que solo cubra los tres valores realmente utilizados?

2) Cuando intento trazar este mapa de calor, aparece el siguiente mensaje de error:

hmo = HeatMap(data)
HeatMap object with 20 rows and 20 columns.
plot(hmo);
Error using ==> figure
Invalid property found.
Object Name :  figure
Property Name :  'PagePosition'.
Error in ==> HeatMap.plot at 42
hFig = figure('Renderer',     'ZBuffer',...

¡Muchas gracias por su ayuda! Patricio

Mapa de calor de Matlab

preguntado el 27 de julio de 12 a las 15:07

¿Dónde está el código para el HeatMap? Este problema parece estar ahí. Además, es PaperPosition en matlab para posicionar la figura no PagePosition. -

2 Respuestas

Desde el documentación, puedes decir HeatMap para usar un mapa de colores personalizado:

HeatMap(Data, ...'Colormap', ColormapValue, ...)

Solo desea 3 valores, así que haga el mapa de colores con 3 filas:

cmap = [0 1 0; %# green
        0 0 0; %# black
        1 0 0;]%# red

Entonces, cuando llames HeatMap, incluya el par nombre-valor;

hmo = HeatMap(data,'colormap',cmap);

Nota: Es posible que deba configurar el clim propiedad de los ejes a [0 500] manualmente.

Respondido 27 Jul 12, 16:07

Los programas HeatMap función no parece ser una función integrada, por lo que hace que sea difícil decir lo que está pasando allí. Sin embargo, su problema con la barra de colores es más fácil de resolver.

El problema es que tu mapa de colores no solo se compone de esos tres colores. Este ejemplo a continuación debería ser suficiente para mostrarle cómo cambiar eso manualmente, si es necesario.

% Create some sample data and plot it
p = peaks;
surf(p)
colorbar

Esto mostrará la figura:

Figura usando el mapa de colores predeterminado

Ahora, si quieres hacer tu personalizado colormap para mostrar solo verde, negro y rojo (en este orden de abajo hacia arriba):

yourColorMap = [0 1 0; 0 0 0; 1 0 0]; % green, black red RGB code. One per row
colormap(yourColorMap)

Hará que su imagen se vea así:

Figura con tu mapa de colores personalizado

Respondido 27 Jul 12, 16:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.