Chcę tylko zwiększyć szerokość i zmniejszyć wysokość. Robię tylko wykresy rastrowe, ale to pytanie dotyczy każdego MATLAB-a figure
. Mogę ręcznie zmienić jego rozmiar, używając figury bezpośrednio po utworzeniu, ale chcę, aby program wypluł ją w odpowiednim rozmiarze na początek.
91
set
? Assaveas(gcf, file, 'png')
używa zamiast tego domyślnych wymiarów.Napisz to jako jednowierszowy :
figure('position', [0, 0, 200, 500]) % create new figure with specified size
źródło
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
Spowoduje to zapisanie figury w określonych wymiarach
źródło
Udało mi się uzyskać dobry wynik dzięki następującej sekwencji (uruchom Matlab dwukrotnie na początku):
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');
źródło
Inne podejście.
W
figure()
wywołaniu określ właściwości lub zmodyfikuj właściwości uchwytu figury poh = figure()
.Tworzy to postać pełnoekranową w oparciu o znormalizowane jednostki.
figure('units','normalized','outerposition',[0 0 1 1])
units
Nieruchomość może być dostosowana do cali, centymetrów, piksele, itpZobacz
figure
dokumentację .źródło