2012-05-23 124 views
1

我已經在Matlab中創建了繪圖,但不幸的是繪圖的一側被繪圖窗口截斷。下面是我用來創建情節代碼:在Matlab中調整繪圖的大小,以便圖形不會被繪圖窗口的邊緣切斷

% create a plot with dots and with bold sides 
point = num(:, 1); 
depth = num(:, 2); 
hfig = plot(point, depth, '-s', 'Color', 'k', 'MarkerFaceColor', 'k', 'MarkerEdgeColor', 'k', 'MarkerSize', 10); 

% make the outside of the graph bold 
set(gca, 'LineWidth', axis_size); 
set(gca,'FontSize', ticksize, 'FontName', fontname); 
set(gca, 'Position', [0.2 0.2 0.8 0.4]) 
xlabel('Point Number') 
ylabel('Depth (cm)') 

這裏是輸出:

Cutoff image

注意如何情節的一側已被切掉了。或者,這裏是展示我要達到什麼樣的一個畫面:

What I want to achieve

我只是創建的情節,而不調用set(gca, 'Position', [0.2 0.2 0.8 0.4]),然後通過調整窗口大小的情節。

但我該如何在代碼中做到這一點?我也想確保我可以將繪圖保存爲具有相同尺寸的PNG文件。我一直在玩set()功能的各種組合,我一直無法達到我想要的。

回答

0

以下文檔(How to produce figures with Matlab that have the right dimensions when printed)提供了一些示例代碼,可用於以適當的方式調整打印尺寸。

下面的代碼用於:

point = num(:, 1); 
depth = num(:, 2); 

hfig = plot(point, depth, '-s', 'Color', 'k', 'MarkerFaceColor', 'k', 'MarkerEdgeColor', 'k', 'MarkerSize', 10); 
set(gca, 'LineWidth', axis_size); 
set(gca,'FontSize', ticksize, 'FontName', fontname); 
set(gcf,'PaperUnits','centimeters') 
xSize = 30; ySize = 5; 
xLeft = (21-xSize)/2; yTop = (30-ySize)/2; 
set(gcf,'PaperPosition',[xLeft yTop xSize ySize]) 
set(gcf,'Position',[300 600 xSize*50 ySize*50]) 

xlabel('Point Number'); 
ylabel('Depth (cm)'); 

下面是結果的圖片。這看起來與我在上面的問題中發佈的類似。我不知道這是否取決於顯示器尺寸和/或屏幕分辨率。

Expected result

+0

這是我目前使用的解決方案,但Xurtio和Andrey的解決方案也很好。謝謝大家的回覆! –

4

嘗試設置該圖的OuterPosition

set(gca,'OuterPosition',[0.2 0.2 0.8 0.4]); 

下圖顯示了兩者的區別:

enter image description here

Here是相關MathWorks公司的幫助頁面。

+0

謝謝;非常感謝!我仍然覺得設置劇情的'位置'和'外部位置'有點難度,因爲我得到的任何東西都會被截斷。你能提出一些我可以用來適當調整我的情節的價值嗎? –