Установка размера рисунка графика

91

Все, что я хочу сделать, это сделать ширину больше, а высоту меньше. Я просто делаю растровые графики, но этот вопрос относится к любому MATLAB figure. Я могу вручную изменить его размер, используя фигуру непосредственно при ее создании, но я хочу, чтобы программа выплюнула его в нужном размере для начала.

эль
источник

Ответы:

81

Свойства , которые могут быть установлены для figureупоминается здесь .

Затем вы можете использовать:

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]);
Маркус Фредин
источник
12
А как можно сохранить фигуру с такими же размерами, определяемыми set? saveas(gcf, file, 'png')Вместо этого As использует размеры по умолчанию.
Иштван Захар
@ IstvánZachar см stackoverflow.com/questions/3600945/...
Эмиль Lundberg
64

Напишите это как однострочное :

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

введите описание изображения здесь

Zinjaai
источник
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

Это сохраняет фигуру в указанных размерах.

user1934314
источник
8
+1 для 'PaperPositionMode' необходимо, если вы хотите 'распечатать' (экспортировать) рисунок.
Али
1

Мне удалось получить хороший результат со следующей последовательностью (дважды запустить Matlab в начале):

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');
Томас
источник
0

Другой подход.
При figure()вызове укажите свойства или измените свойства ручки фигуры после h = figure().

Это создает полноэкранный рисунок на основе нормализованных единиц.
figure('units','normalized','outerposition',[0 0 1 1])

unitsСвойство может быть отрегулировано в дюймы, сантиметры, пиксели и т.д.

См. figure Документацию .

SecretAgentMan
источник