Einstellen der Größe der Grafikfigur

91

Ich möchte nur die Breite vergrößern und die Höhe verkleinern. Ich mache nur Raster-Plots, aber diese Frage gilt für jedes MATLAB figure. Ich kann die Größe manuell ändern, indem ich die Figur direkt beim Erstellen verwende, aber ich möchte, dass das Programm sie zunächst in der richtigen Größe ausspuckt.

Ale
quelle

Antworten:

81

Auf die Eigenschaften, die für a festgelegt werden können, figurewird hier verwiesen .

Sie könnten dann verwenden:

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
quelle
12
Und wie können Sie die Figur mit den gleichen Abmessungen speichern, die durch definiert sind set? As saveas(gcf, file, 'png')verwendet stattdessen Standardabmessungen.
István Zachar
@ IstvánZachar siehe stackoverflow.com/questions/3600945/…
Emil Lundberg
64

Schreiben Sie es als Einzeiler :

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

Geben Sie hier die Bildbeschreibung ein

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

Dadurch wird die Figur in den angegebenen Abmessungen gespeichert

user1934314
quelle
8
+1 für den 'PaperPositionMode' ist es notwendig, dass Sie die Figur 'drucken' (exportieren) möchten.
Ali
1

Ich habe mit der folgenden Sequenz ein gutes Ergebnis erzielt (Matlab am Anfang zweimal ausführen):

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

Ein anderer Versuch.
Geben Sie beim figure()Aufruf Eigenschaften an oder ändern Sie die Eigenschaften des Abbildungshandles nach h = figure().

Dadurch wird eine Vollbildfigur basierend auf normalisierten Einheiten erstellt.
figure('units','normalized','outerposition',[0 0 1 1])

Die unitsEigenschaft kann auf Zoll, Zentimeter, Pixel usw. eingestellt werden.

Siehe figure Dokumentation .

SecretAgentMan
quelle