2013-09-24 5 views
6

matlabのEPS出力は、右側のY軸のラベルのカットです。plotyy関数を使用したMatlab ylabelのカットオフ

私はplotyy関数を使用していて、次のようにepsに出力しています: print(f1、 ' - depsc2'、 'figure1.eps');

用紙サイズのプロパティと用紙サイズのプロパティを変更しようとしましたが、これはそれぞれの調整時に用紙サイズの変更を維持しているように見えます。

私はpaperpositionmodeをmanualに設定しました。

誰にもアイデアはありますか?

自己完結して問題を再現するサンプルコードをいくつか作成しました。 ティックとフォントサイズを大きくすると問題が発生します。しかし、これは私の状況にとって不可欠です。

close all; 

% example data: 
x = 0:0.01:4; 
y1 = 5*sin(2*pi*x+0.1) + 20; 
y2 = 0.09*sin(2*pi*x); 

tickfontsize = 18; 
labelfontsize = 20; 

% begin figure: 
f1 = figure(1); 
[ax, h1, h2 ] = plotyy(x,y1,x,y2) 

% axis labels and font size: 
set(get(ax(2),'Ylabel'),'String','Test1') ; 
set(get(ax(1),'Ylabel'),'String','test2') ; 
set(get(ax(1),'Ylabel'),'FontSize',labelfontsize) ; 
set(get(ax(2),'Ylabel'),'FontSize',labelfontsize) ; 

% left hand side ticks: 
set(ax(1),'YLim',[6 10]); 
set(ax(1),'YTick',[6:1:10]); 
set(ax(1),'FontSize',tickfontsize); 

% right hand side ticks: 
set(ax(2),'YLim',[-0.13 0.14]); 
set(ax(2),'YTick',[-0.1:0.05:0.1]); 
set(ax(2),'FontSize',tickfontsize); 

%print figure to eps: 
print(f1,'-depsc2', './simpleoutput.eps'); 

Screenshot of EPS output

+0

問題を再生成する最小の実例を提供できますか?クイック・アンド・ダーティ 'plotyy'と' print'コマンドで、私はカットオフラベルを得ることができませんでした。 – Schorsch

+0

@Schorschご意見ありがとうございます。問題を再現するコードをいくつか追加しました。 – CptLightning

+0

誰かが3年前にMathworks Newsgroupで同様の質問をしました。[link](http://www.mathworks.com/matlabcentral/newsreader/view_thread/286282)。この問題に対する簡単な自動解決策はなく、あなたはLuisの答えのようにしなければならないと思われます。 – Roun

答えて

6

変更がそれらを狭くするために位置を軸:あなたは軸比を維持する必要がある場合は

set(ax(1),'Position', [0.13 0.11 0.775-.08 0.815]); 
set(ax(2),'Position', [0.13 0.11 0.775-.08 0.815]); 
% Original position was [0.13 0.11 0.775 0.815] 
% Applied change in width: "-.08". Choose as desired 

、あなたはまた、高さ(4番目の数字)を変更する必要があります。

+0

あなたのおかげで、ありがとうございました。 – CptLightning

関連する問題