2017-07-29 17 views
0

私は上の半分を取る1つのプロットで4x1図のプロットを持っています。私はそれを比較的高解像度の1600x1200モニタで見ていますので、Matlabは問題ありません。Matlabsがすべてのものに適合する4x2の図を考えると、これは特に奇妙です。Matlab:上記の軸ラベルと重複するサブプロットのタイトル

enter image description here enter image description here

それでは、4x1のプロットに問題があると私はそれをどのように修正するのですか?なぜ地球上でMatlab(2016b)が4x2のためにできることができないのですか? 「battery_discharging.txt」 から

identifier='unshielded'; 
bat_discharging=readtable('battery_discharging.txt','Format', '%u%f%f%f'); 

subplot(4,1,[1 2]); 
yyaxis left; 
plot(bat_discharging{:,1},bat_discharging{:,2}); 
ylabel('Voltage, V'); 
yyaxis right 
plot(bat_discharging{:,1},bat_discharging{:,3}); 
hold on 
plot(bat_discharging{:,1},bat_discharging{:,4}); 
ylabel('Current, A'); 
hold off 
xlabel(bat_discharging.Properties.VariableNames{1}); 
legend('Voltage', 'Current with external reference',... 
    'Current with internal refence', 'Location','east'); 
title(['Discharging, ' identifier]); 

subplot(4,1,3); 
[ext_currentfit,ext_gof, ext_output] = fit(double(bat_discharging{:,1}),... 
    bat_discharging{:,3}, 'smoothingspline'); 
plot(bat_discharging{10:end,1}, ext_output.residuals(10:end)); 
xlabel(bat_discharging.Properties.VariableNames{1}); 
ylabel('Current, A'); 
title(sprintf(... 
    'Battery current measurement noise, external reference, %s, span=%.3e, %s=%e',... 
    identifier,range(ext_output.residuals(10:end)),... 
    '\sigma',std(ext_output.residuals(10:end)))); 

subplot(4,1,4); 
[int_currentfit,ext_gof, int_output] = fit(double(bat_discharging{:,1}),... 
    bat_discharging{:,4}, 'smoothingspline'); 
plot(bat_discharging{10:end,1}, int_output.residuals(10:end)); 
ylabel('Current, A'); 
xlabel(bat_discharging.Properties.VariableNames{1}); 
title(sprintf(... 
    'Battery current measurement noise, internal reference, %s, span=%.3e, %s=%e',... 
    identifier,range(int_output.residuals(10:end)),... 
    '\sigma',std(int_output.residuals(10:end)))); 

最初の20のデータセットは、コードの実行を取得するのに十分でなければなりません。

Sample Voltage, V Current external ref Current internal ref 
1 3.327263594e+00 -8.607864380e-05 -8.599996567e-05 
2 3.326871395e+00 -8.591771126e-05 -8.585631847e-05 
3 3.326753676e+00 -8.580327034e-05 -8.570969105e-05 
4 3.326707184e+00 -8.567452431e-05 -8.563339710e-05 
5 3.326638043e+00 -8.560776711e-05 -8.552610874e-05 
6 3.326614201e+00 -8.551001549e-05 -8.547961712e-05 
7 3.326560557e+00 -8.546590805e-05 -8.539199829e-05 
8 3.326546252e+00 -8.538603783e-05 -8.535683155e-05 
9 3.326498866e+00 -8.535146713e-05 -8.528172970e-05 
10 3.326489627e+00 -8.528113365e-05 -8.525252342e-05 
11 3.326448202e+00 -8.525490761e-05 -8.518755436e-05 
12 3.326441050e+00 -8.518815041e-05 -8.516192436e-05 
13 3.326403201e+00 -8.516669273e-05 -8.509933949e-05 
14 3.326398730e+00 -8.510708809e-05 -8.508086205e-05 
15 3.326362669e+00 -8.508801460e-05 -8.502542973e-05 
16 3.326360881e+00 -8.503198624e-05 -8.500695229e-05 
17 3.326325417e+00 -8.501410484e-05 -8.495271206e-05 
18 3.326324224e+00 -8.496403694e-05 -8.493661880e-05 
19 3.326291144e+00 -8.494853973e-05 -8.488714695e-05 
20 3.326291144e+00 -8.489966393e-05 -8.487284184e-05 

MCVE

x = 1:100; 
y = rand(100, 1); 

subplot(3,1,[1 2]); 
plot(x, y); 
xlabel('label'); 

subplot(3,1,3); 
plot(x, y); 
title('TITLE'); 

enter image description here

+1

このコードは、最小限かつ完全でもある[MCVE] –

+0

@SardarUsamaを作成します。問題のある人物を作る必要があります。また、 "battery_discharging.txt"という名前のファイルを置くために必要ないくつかのデータも含めました。他に何が欠けていますか? –

+1

'bat_voltage'とは何ですか?スクリプトをもっと小さな画面(2017a)で実行すると、私はこの問題を見ることができません。 – EBH

答えて

2

私はこの問題の原因かわからない、それを再現することはできませんが、私は最も簡単な解決策を得るためになると思います第1の軸へのハンドル:

ax = subplot(4,1,[1 2]); 

とあなたがそれらをプロット完了した後、それらを少し上に移動:ここ

ax.Position(2) = ax.Position(2)*1.02; % This may be adjusted 
% subplot(4,1,3); etc... 

私は2%にそれらを取るが、あなたはもう少し必要があるかもしれません。また、同様にして、あなたが最後の軸を少し降ろすことができます。

ax = subplot(4,1,4); 
% do all the plotting 
ax.Position(2) = ax.Position(2)*0.98; % This may be adjusted 
関連する問題