Ustawianie rozmiaru wykresu

91

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.

ale
źródło

Odpowiedzi:

81

Właściwości, które mogą być ustawione dla figureodwołuje się tutaj .

Możesz wtedy użyć:

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
źródło
12
A jak można zapisać figurę z tymi samymi wymiarami określonymi przez set? As saveas(gcf, file, 'png')używa zamiast tego domyślnych wymiarów.
István Zachar
@ IstvánZachar patrz stackoverflow.com/questions/3600945/…
Emil Lundberg
64

Napisz to jako jednowierszowy :

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

wprowadź opis obrazu tutaj

zinjaai
źródło
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

Spowoduje to zapisanie figury w określonych wymiarach

user1934314
źródło
8
+1 dla 'PaperPositionMode' konieczne jest, abyś chciał 'wydrukować' (wyeksportować) figurę.
Ali
1

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');
Tomasz
źródło
0

Inne podejście.
W figure()wywołaniu określ właściwości lub zmodyfikuj właściwości uchwytu figury po h = figure().

Tworzy to postać pełnoekranową w oparciu o znormalizowane jednostki.
figure('units','normalized','outerposition',[0 0 1 1])

unitsNieruchomość może być dostosowana do cali, centymetrów, piksele, itp

Zobacz figure dokumentację .

SecretAgentMan
źródło