การตั้งค่าขนาดรูปกราฟ


91

สิ่งที่ฉันอยากทำคือทำให้ความกว้างมากขึ้นและความสูงเล็กลง ฉันแค่ทำแปลงแรสเตอร์ แต่คำถามนี้นำไปใช้กับ figureMATLAB ฉันสามารถปรับขนาดได้ด้วยตนเองโดยใช้รูปโดยตรงเมื่อสร้างขึ้น แต่ฉันต้องการให้โปรแกรมพ่นออกในขนาดที่เหมาะสมเพื่อเริ่มต้นด้วย

คำตอบ:


81

คุณสมบัติที่สามารถตั้งค่าสำหรับfigureการอ้างอิงที่นี่

จากนั้นคุณสามารถใช้:

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
และคุณจะบันทึกภาพที่มีขนาดเท่ากันได้setอย่างไร? เนื่องจากsaveas(gcf, file, 'png')ใช้มิติข้อมูลเริ่มต้นแทน
István Zachar



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

สิ่งนี้จะบันทึกตัวเลขตามขนาดที่ระบุ


8
+1 สำหรับ 'PaperPositionMode' คุณจำเป็นต้อง 'พิมพ์' (ส่งออก) รูป
อาลี

1

ฉันจัดการเพื่อให้ได้ผลลัพธ์ที่ดีตามลำดับต่อไปนี้ (เรียกใช้ Matlab สองครั้งที่จุดเริ่มต้น):

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

แนวทางที่แตกต่าง
ในการโทรระบุคุณสมบัติหรือปรับเปลี่ยนคุณสมบัติรูปที่จับหลังfigure()h = figure()

สิ่งนี้จะสร้างภาพเต็มหน้าจอตามหน่วยปกติ
figure('units','normalized','outerposition',[0 0 1 1])

unitsคุณสมบัติสามารถปรับเปลี่ยนเพื่อนิ้วเซนติเมตรพิกเซล, ฯลฯ

โปรดดูเอกสารfigure

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.