2016-03-30 15 views
0

回答中、このquestionと問題に関係なく、実際に高さの高い図形を作成すると、図形が切り取られることがわかりました。 Figureの子のプロパティ'units''normalized'に設定されている場合、適切な子は切り取られるのではなく収縮されます。図形寸法の限界

なぜ、フィギュアの高さが制限され、どのような(プロパティ)ルールが制限するのかという疑問があります。

:私はこれを試してみました

編集

(解像度1400x900 pxのDellの緯度E5500、Win7のenterpise、32ビット; MATLAB 2011B)それは私が9.94" の高さを把握するlimittedてるように見えます

>> set(gcf,'position',[10 10 600 600]),get(gcf,'position') ans = 10.0000 10.0000 28.3333 9.8750 >> set(gcf,'position',[0 0 600 600]),get(gcf,'position') ans = 0 0 600 600 

export_figによって得られた数値は、Adobe Acrobat 9 Proの中で測定されるように、両方の場合で28.35" ×9.88" である。

+0

これは 'export_fig'または' print'を使用していますか? – Suever

答えて

2

私はそれは、MATLABが検出された最大表示サイズとPIとに関係している疑いがありますシステムの密度。画面1900x1200で、私のMatlabのR2013a、Windows 7は、上

は、私はあなたよりも大きな数字を得ることができますが、それはまだ切り捨てられます。

%% // MATLAB R2013A - Windows 7, 1900x1200pixels 
set(gcf,'units','inches','position',[1 -5 6 15]) 
get(gcf,'position') 
get(gcf,'OuterPosition') 

リターン:

ans = 
      1.00   -5.00   6.00   11.81 
ans = 
      0.92   -5.08   6.17   12.71 

をマイ最大垂直サイズは11.81インチにカットされました。今はそれがMatlabの姿です。タイトルバーと罫線を含む実際のサイズは、プロパティOuterPositionによって与えられます。

今考える:

>> get(0,'ScreenSize') 
ans = 
      1.00   1.00  1920.00  1200.00 
>> get(0,'ScreenPixelsPerInch') 
ans = 
     96.00 

我々は1200pixel/96ppi = 12.5をすれば。この画面密度では、Matlabは12.5インチ相当のグラフィックスしか表示できません。

set(gcf,'units','inches','position',[1 -5 6 15]) 
set(gcf,'units','Pixels') 
get(gcf,'position') 
get(gcf,'OuterPosition') 
ans = 
     97.00  -479.00  576.00  1134.00 
ans = 
     89.00  -487.00  592.00  1220.00 

図は(インチ単位は、Matlabのベースユニットは、ピクセル単位で動作するだけで変換される)を正確に1220pixelsで切り捨てられた:あなたは「ピクセル」に単位を設定する場合、これは偶数モードは明らかであろう。私は余分な20ピクセルは、タイトルバーの余分な余裕があると思われる。

あなたの数字はouterpositionではありませんが、数字の内側の位置もおおよそ画面のサイズ(900px * 96ppi = 9.375inches)と一致します。ユニットをPixelsに強制的に戻してください。図のOuterPositionを取得してください。920ピクセルを取得しても驚くことはありません。


これで、古いバージョンのMatlabについて心配する必要があるようです。 MatlabのR2015b、これ以上の自動トリミングと同じマシン(勝利7、1900x1200px)、上:

%% // MATLAB R2015B - Windows 7, 1900x1200pixels 
set(gcf,'units','inches','position',[1 -5 6 15]) 
get(gcf,'position') 
get(gcf,'OuterPosition') 
ans = 
      1.00   -5.00   6.00   15.00 
ans = 
      0.92   -5.08   6.17   15.40 
set(gcf,'units','Pixels') 
get(gcf,'position') 
get(gcf,'OuterPosition') 
ans = 
     97.00  -479.00  576.00  1440.00 
ans = 
     89.00  -487.00  592.00  1478.00 

のMatlabの新しいグラフィックエンジンは、その制限を解除しているように見える、私の図は、今大きいです私の画面サイズは、(あなたがピクセルかインチを見るかどうか)。

+0

完璧な答えをありがとう。私は数字の幅を切り取るのと同じ考えがあると思います。 – Crowley