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.

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]);

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


64

Schreiben Sie es als Einzeiler :

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

Geben Sie hier die Bildbeschreibung ein


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


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');

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 .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.