Aunque ya no suelo programar en Matlab, de vez en cuando necesito recurrir a él cuando estoy trabajando con otras personas que sí lo usan, o cuando utilizo códigos que ya tenía escritos desde hace años. Me ha surgido la necesidad de modificar el mapa de color de un mapa para hacerlo igual que el que está usando otro coautor, y las figuras de los mapas las tenía hechas en Matlab y guardadas como .fig. Para no tener que volver a ejecutar todo el cálculo de los mapas, he buscado la manera de modificar el mapa de color directamente en la figura .fig.
Este podría ser un mapa de ejemplo que usaré como origen. Abrí el .fig y lo que veo es esto, con el mapa de color original (el clásico jet).
Ahora, para cambiar al mapa de color, que además no es ninguno de los estándar si no uno creado por mi coautor, primero debo escribir el mapa de color en una matriz, que la guardaré como un fichero, al que llamaré mapadecolor.txt. En esta matriz hay una columna para R, otra para G y otra para B (RGB), con valores de entre 0 y 255.
0 53 255
0 109 255
19 161 255
112 198 255
205 235 255
255 237 209
255 200 116
255 162 23
255 111 0
255 55 0
Una vez tengo el fichero mapadecolor.txt, abro la figura .fig en Matlab, que quedará abierta hasta que termine con este proceso. Ahora voy a la consola y escribo lo siguiente:
RGB = load('mapadecolor.txt');
RGB = RGB./255;
colormap(RGB)
Como puedes ver, hay que dividir por 255 todos los valores de la matriz, porque en Matlab los mapas de color están normalizados a 1 (valores de entre 0 y 1). Y ya está. Si miro mi figura, ahora tendrá aplicado el nuevo mapa de color, tal y como puede verse aquí:
Si quiero aplicar el mismo mapa de color a otras figuras, no tengo más que dejar cargado mi código, abrir los demás .fig y escribir en la consola colormap(RGB) para que se aplique.
Una vez hecho esto, en el .fig se pueden modificar más cosas de manera interactiva, como por ejemplo el número de niveles en la barra de color, que se verán reflejados en la figura, por poner solo un ejemplo.
Sé el primero en comentar