2012-10-12 162 views
11

Estoy tratando de crear un mapa de calor con MATLAB, pero la función predeterminada en el programa MATLAB no tiene ningún sentido para mí.MATLAB heat map

http://www.mathworks.com/help/bioinfo/ref/heatmap.html

¿Hay alguien que me pueda ayudar con el etiquetado en primer lugar, de modo que pueda leer a través de la otra función a mí mismo después de eso? ¿O hay algún otro programa que tenga una interfaz más fácil de usar?

HeatMap(Data, ...'RowLabels', RowLabelsValue, ...) 

I tienen un conjunto de datos de una matriz 81*2 y mi etiqueta es una célula 81*1 para el eje x y 1*2 para eje y. Ahora puedo importar con éxito los datos de Excel y trazar los datos usando un mapa de calor, pero me cuesta completar la variable en la función HeatMap.

Muchas gracias.

+1

HeatMap obtiene datos que es una matriz. Si te entiendo correctamente, solo tienes las coordenadas de la matriz (x, y). primero intenta construir una matriz a partir de tus coordenadas x-y. – bla

+0

¿Quiere decir que quiere un mapa de calor agrupado? – Bitwise

Respuesta

2

No estoy seguro de lo que realmente está tratando de lograr, pero creo que es posible que desee utilizar colormap{}. Si está intentando crear un clásico "heatmap", el mapa de color es la función que desea. Básicamente, si tienes la posición x, y, y un valor Z que quieres representar como un color, este es el truco para ti.

26

HeatMap no es realmente una función estándar para esto, proviene de la Caja de herramientas de Bioinformatics. La forma más sencilla de dibujar un mapa de calor podría ser como:

A = 1:50;   % matrix to draw 
colormap('hot'); % set colormap 
imagesc(A);  % draw image and scale colormap to values range 
colorbar;   % show color scale 

Como @natan sugirió, es posible que desee construir su matriz primero y luego dibujar usando image o imagesc. También migt quieres ver el artículo en mi blog que muestra que some color sets are better for accessibility than others, p. para imprimir en escala de grises o en deficiencia de visión de color.

+0

¡Simple y elegante, encantador! – Gerard

0

Puede usar la API Plotly MATLAB para hacer un mapa de calor. Prueba esto:

r = plotly({struct('z',randn(50,50), 'type','heatmap')}) % => https://plot.ly/~matlab_example/18dos(['open ', r.url]) 

this heatmap

Se puede ver la versión interactiva e instalación here.

Divulgación, estoy en el equipo de Plotly.