tag - title subplot matlab
Redibuje una figura guardada en 2013b en 2014b (1)
Como MATLAB ha cambiado su motor de figuras en R2014b, decidí volver a ejecutar parte de mi código para obtener figuras con mejor aspecto. Desafortunadamente, el último que tengo es un código que tarda años en ejecutarse, y me gustaría evitar encarecidamente volver a ejecutar el código para obtener una figura más agradable.
.fig
el resultado en un archivo .fig en R2013b. Sin embargo, si lo abro en R2014b, todavía tiene el formato antiguo.
¿Es posible volver a dibujar la figura utilizando el motor de trazado MATLAB R2014b? Si es así, ¿cómo podría hacerlo?
NOTA: Literalmente, la figura se abre y se dibuja con el nuevo motor, sin embargo, conserva su formato antiguo. Si bien una nueva figura con un comando de title()
trazaría un buen título grande y en negrita, si un nuevo dibujo de esta figura usando "drawow" o genero código para él, el formato sigue siendo el mismo.
Ejemplo: esta figura se creó en 2013b y se volvió a dibujar en 2014b. Puede ver que el título no se traza en el mismo formato que un title(''whatever'')
se trazaría en los nuevos controladores gráficos. Parece que un ''.fig'' guarda y establece los valores predeterminados para la versión que se ha generado. Por lo tanto, los colores, títulos, etiquetas, etc. de la trama se parecerán a los controladores gráficos antiguos cuando se redibujen.
Esto se puede probar con el siguiente código. Tenga en cuenta que este es un problema demasiado simplificado, la pregunta no es explícitamente acerca de los títulos o las etiquetas, sino de todas las cosas gráficas en general.
rng(1)
figure()
x = 1:50;
y = rand(1, 50);
plot(x,y)
title(''this NICE Title'')
xlabel(''labels!'')
ylabel(''some other labels'',''Interpreter'',''Latex'')
Si este código se ejecuta en 2013b y 2014b, se guarda como higo en ambos y luego se abre como higo en ambos, aparecen las siguientes 2 figuras:
El archivo fig 2013b: http://s000.tinyupload.com/index.php?file_id=02053933004513599550
Hay una forma indirecta de hacer esto, simplemente usando hgopen
para cargar la figura y luego extraer los datos para volver a trazarlos en 2014b:
h1=hgopen(''test.fig''); % h1 = handle to the figure
allaxes=get(h1,''children''); % allaxes = array with axes handles
for a=1:length(allaxes)
ax=allaxes(a);
allines=get(ax,''children''); % all lines in current axes
for l=1:length(allines)
lin=allines(l);
values=get(lin,''ydata''); % values of the current line
subplots{a}{l}=values;
end
end
Luego, puede usar la matriz de celdas de subplots para hacer los gráficos nuevamente a mano. Es una forma aburrida de hacerlo, pero puede valer la pena intentarlo si volver a generar la salida lleva mucho tiempo.