Définition de la taille de la figure du graphique


91

Tout ce que je veux faire est de rendre la largeur plus grande et la hauteur plus petite. Je fais juste des tracés raster mais cette question s'applique à n'importe quel MATLAB figure. Je peux le redimensionner manuellement en utilisant la figure directement lors de sa création, mais je veux que le programme le recrache dans la bonne taille pour commencer.

Réponses:


81

Les propriétés qui peuvent être définies pour a figuresont référencées ici .

Vous pouvez alors utiliser:

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
Et comment pouvez-vous enregistrer la figure avec les mêmes dimensions définies par set? As saveas(gcf, file, 'png')utilise à la place les dimensions par défaut.
István Zachar


64

Écrivez-le en une seule ligne :

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

entrez la description de l'image ici


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

Cela enregistre la figure dans les dimensions spécifiées


8
+1 pour le 'PaperPositionMode' il faut que vous vouliez 'imprimer' (exporter) la figure.
Ali le

1

J'ai réussi à obtenir un bon résultat avec la séquence suivante (exécutez Matlab deux fois au début):

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

Une approche différente.
Lors de l' figure()appel, spécifiez les propriétés ou modifiez les propriétés de la poignée de la figure aprèsh = figure() .

Cela crée une figure plein écran basée sur des unités normalisées.
figure('units','normalized','outerposition',[0 0 1 1])

La unitspropriété peut être ajustée en pouces, centimètres, pixels, etc.

Consultez la figure documentation .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.