Configuración del tamaño de la figura del gráfico

91

Todo lo que quiero hacer es aumentar el ancho y reducir la altura. Solo estoy haciendo gráficos ráster, pero esta pregunta se aplica a cualquier MATLAB figure. Puedo cambiar su tamaño manualmente usando la figura directamente cuando se crea, pero quiero que el programa lo escupe en el tamaño correcto para comenzar.

cerveza inglesa
fuente

Respuestas:

81

Aquífigure se hace referencia a las propiedades que se pueden establecer para a .

Entonces podrías usar:

figure_number = 1;
x      = 0;   % Screen position
y      = 0;   % Screen position
width  = 600; % Width of figure
height = 400; % Height of figure (by default in pixels)

figure(figure_number, 'Position', [x y width height]);
Marcus Frödin
fuente
12
¿Y cómo se puede guardar la figura con las mismas dimensiones definidas por set? En su saveas(gcf, file, 'png')lugar, As usa dimensiones predeterminadas.
István Zachar
@ IstvánZachar ver stackoverflow.com/questions/3600945/…
Emil Lundberg
64

Escríbalo como una sola línea :

figure('position', [0, 0, 200, 500])  % create new figure with specified size  

ingrese la descripción de la imagen aquí

zinjaai
fuente
31
 figure (1)
 hFig = figure(1);
 set(gcf,'PaperPositionMode','auto')
 set(hFig, 'Position', [0 0 xwidth ywidth])
 plot(x,y)
 print -depsc2 correlation.eps;       % for saving in eps, look up options for saving as png or other formats you may need

Esto guarda la figura en las dimensiones especificadas

user1934314
fuente
8
+1 para el 'PaperPositionMode' es necesario si desea 'imprimir' (exportar) la figura.
Ali
1

Logré obtener un buen resultado con la siguiente secuencia (ejecutar Matlab dos veces al principio):

h = gcf; % Current figure handle
set(h,'Resize','off');
set(h,'PaperPositionMode','manual');
set(h,'PaperPosition',[0 0 9 6]);
set(h,'PaperUnits','centimeters');
set(h,'PaperSize',[9 6]); % IEEE columnwidth = 9cm
set(h,'Position',[0 0 9 6]);
% xpos, ypos must be set
txlabel = text(xpos,ypos,'$$[\mathrm{min}]$$','Interpreter','latex','FontSize',9);

% Dump colored encapsulated PostScript
print('-depsc2','-loose', 'signals');
Thomas
fuente
0

Un enfoque diferente.
En la figure()llamada, especifique propiedades o modifique las propiedades del identificador de figura después h = figure().

Esto crea una figura de pantalla completa basada en unidades normalizadas.
figure('units','normalized','outerposition',[0 0 1 1])

La unitspropiedad se puede ajustar a pulgadas, centímetros, píxeles, etc.

Ver figure documentación .

SecretAgentMan
fuente