Configurando o tamanho da figura do gráfico

91

Tudo o que quero fazer é aumentar a largura e diminuir a altura. Estou apenas fazendo plotagens raster, mas esta questão se aplica a qualquer MATLAB figure. Posso redimensioná-lo manualmente usando a figura diretamente quando for criado, mas quero que o programa cuspa no tamanho certo para começar.

cerveja
fonte

Respostas:

81

As propriedades que podem ser definidas para um figuresão referenciadas aqui .

Você pode então 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
fonte
12
E como você pode salvar a figura com as mesmas dimensões definidas por set? As saveas(gcf, file, 'png')usa dimensões padrão.
István Zachar
@ IstvánZachar, consulte stackoverflow.com/questions/3600945/…
Emil Lundberg
64

Escreva como uma linha :

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

insira a descrição da imagem aqui

zinjaai
fonte
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

Isso salva a figura nas dimensões especificadas

user1934314
fonte
8
+1 para o 'PaperPositionMode' é necessário que você queira 'imprimir' (exportar) a figura.
Ali
1

Consegui obter um bom resultado com a seguinte sequência (execute o Matlab duas vezes no início):

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
fonte
0

Uma abordagem diferente.
Na figure()chamada, especifique as propriedades ou modifique as propriedades do identificador da figura depois h = figure().

Isso cria uma figura de tela inteira com base em unidades normalizadas.
figure('units','normalized','outerposition',[0 0 1 1])

A unitspropriedade pode ser ajustada para polegadas, centímetros, pixels, etc.

Veja a figure documentação .

SecretAgentMan
fonte