2012-01-03 31 views
4

我有一個使用帶有顏色條的contourf生成的圖形。我的大部分地塊都很好,但是當顏色欄上的值爲10^{-3}時,編號爲0.005等由顏色條寫入,或者x10^{-3}寫在頂部。當將圖形保存爲eps文件時,Matlab會切斷顏色貼圖標籤

在這兩種情況下,標籤的一部分被切斷 - 無論是在0.005x10^{-3}3或半5的。

我可以解決這個使用

set(gca, 'ActivePositionProperty', 'OuterPosition') 

的數字屏幕,但我需要將其保存在EPS格式。當我這樣做時,3(或5)又被切斷了!

我也可以解決這個問題,如果我手動拉圖形窗口的右下角,使其更大。但是這改變了軸標籤的大小,而不是與情節本身相比,這樣它們就不同於我的所有其他數字,即我不調整大小的數字。

有什麼建議嗎?

+2

請發表一個源代碼 – 2012-01-05 18:10:30

回答

2

Matlab使用兩種尺寸的數字:屏幕尺寸(Position figure property)和PaperSize。前者用於在屏幕上顯示,後者用於打印或導出爲除.fig以外的圖像格式。我懷疑這是你問題的根源。

這裏是你可以嘗試什麼:

size = get(gcf,'Position'); 
size = size(3:4); % the last two elements are width and height of the figure 
set(gcf,'PaperUnit','points'); % unit for the property PaperSize 
set(gcf,'PaperSize',size); 

這臺「紙」的大小,以.eps出口到屏幕上顯示的圖形的大小。

如果這不起作用,您可以嘗試使用PaperSize或其他「紙張」相關屬性玩一下。 Figure Properties文檔頁面提供了有關屬性的更多信息。

希望這會有所幫助!

2

以前的建議部分正確。這裏是我做的:

  1. 組中的兩個,數字和紙張單位,相同的措施(圖具有像素,而不是點!)

    set(gcf,'Units','points') 
    set(gcf,'PaperUnits','points') 
    
  2. 做和以前一樣建議:

    size = get(gcf,'Position'); 
    size = size(3:4); 
    set(gcf,'PaperSize',size) 
    
  3. 的東西現在是,它可能被轉移掉紙張,因爲在我的情況,所以把它放回

    set(gcf,'PaperPosition',[0,0,size(1),size(2)]) 
    

我不知道的[0,0]的偏移,但什麼是切斷了單點:)

0

嘗試使用此方法將文件保存到文件名。eps

set(gcf,'Units','points') 
set(gcf,'PaperUnits','points') 
size = get(gcf,'Position'); 

size = size(3:4); 
set(gcf,'PaperSize',size) 
set(gcf,'PaperPosition',[0,0,size(1),size(2)]) 

print(gcf,'filename','-depsc','-loose'); % Save figure as .eps file 
相關問題