Saltar al contenido

Cómo cambiar el tamaño de símbolo en una leyenda de MATLAB

Llevo unos días tratando de resolver un problema aparentemente muy tonto en una gráfica hecha con MATLAB, pero por mucho que he estado buscando en la ayuda del programa y en internet, no daba con la solución. El problema es el siguiente: representas una serie de datos en una gráfica y añades a la gráfica una leyenda, pero quieres que los símbolos de las leyendas aparezcan en un tamaño más grande que el que tienen por defecto. Parece una tontería, pero por lo visto MATLAB no permite modificar el tamaño de los símbolos de la leyenda de una forma tan intuitiva como lo permite hacer para los símbolos en la propia gráfica.

Voy a poner un ejemplo visual. Esta es una gráfica del tipo scatterm, es decir, una serie de puntos localizados en las coordenadas x e y a los que les asignamos valores. El dimátero del círculo varía con ese valor.

plot1

En la leyenda, arriba a la derecha, puedes ver que el punto al lado de la palabra «data1» es muy pequeño, quizás extremadamente pequeño para incluirlo en una figura para publicar o añadir a una presentación. Pues bien, después de leer mucho y juntar varias posibles soluciones, esta es la solución a la que llegué para hacer esto en la versión R2010a de MATLAB (y creo que funciona desde esa versión en adelante):

– Una vez representada la gráfica, escribe esto en la ventada de comandos




I=findobj(gcf,'tag','legend');
a=get(I,'Children');
set(get(a(1),'Children'),'markersize',20);

El número que está señalado en rojo es el que debes cambiar hasta conseguir el tamaño que quieras. Con un valor de 20, yo conseguí este resultado:

plot2

La propiedad ‘markersize’ de las leyendas parece ser que se podía cambiar más fácilmente en versiones anteriores de MATLAB, pero si tratas de hacerlo como indican algunos usuarios en diferentes foros de la red te encontrarás con el error ‘there is no ‘MarkerSize’ property in the ‘hggroup’ class’. De esta otra manera que te propongo aquí sí te debería funcionar.

En el caso de que tengas muchos símbolos en la leyenda, tienes que tener en cuenta que tanto símbolos como textos de la leyenda se guardan en la variable que hemos llamado «a». Si tienes un segundo símbolo, puedes hacer lo mismo que antes pero con a(3) y verás que ese símbolo también cambia de tamaño. Jugando un poco con esto conseguirás que los símbolos de las leyendas sean bien visibles.

Espero que este truco te sirva en tus trabajos. Yo lo estoy usando con mapas de este tipo pero referenciados a coordenadas de latitud y longitud, sobre un mapa geográfico (es algo que no puedo hacer con Veusz), y ahora sí que quedan bien las leyendas.

ACTUALIZACIÓN: Misterios de la informática….al grabar la figura a un archivo gráfico (tanto en jpg, como en tiff, eps, etc.) encuentro que el cambio en el tamaño del símbolo de la leyenda desaparece. Esto no ocurre en todas las figuras pero en algunas de las que tengo ya hechas sí que ocurre. La solución está en ir al Export Setup dentro de el menú File de la figura, seleccionar Rendering y allí activar Custom Renderer (a mí me funciona con painters (vector format) en el menú desplegable), luego aplicar a la figura y luego OK. Ahora el cambio sí se verá reflejado cuando grabes la figura en un fichero gráfico.

Publicado enDivulgación

Un comentario

  1. Albert Rodriguez Vega Albert Rodriguez Vega

    Me pregunto si alguien ha tratado de cambiar la apariencia de un gráfico en barra poniendo el fondo de las barras con texturas, empleando hatch o hatchfill. Lo he hecho y cambia perfectamente el fondo de las barras, pero la leyenda no me cambia y no he encontrado forma de hacerlo. Tienen idea de como solucionar esta interrogante.
    Saludos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Verificado por MonsterInsights