Ich habe 4x1 Figur Plot mit 1 Plot die obere Hälfte nehmen. Ich sehe es auf einem relativ hochauflösenden 1600x1200-Monitor, also sollte Matlab kein Problem haben, hinein zu passen. Das ist besonders merkwürdig, wenn man bedenkt, dass Matlabs eine 4x2-Figur hat, bei der alles in Ordnung ist.Matlab: der Titel des Subplot überlappt das Achsenetikett über
Also, was ist das Problem mit dem 4x1 Grundstück und wie kann ich es beheben? Warum in aller Welt kann Matlab (2016b) nicht tun, was es für 4x2 kann?
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))));
ersten 20 Datensätze aus "battery_discharging.txt" sollte ausreichen, um den Code zum Laufen zu bringen.
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
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');
erstellen [MCVE] –
@SardarUsama dieser Code sowohl minimal und vollständig sind. und notwendig, um die Figur mit dem Problem zu erstellen. Ich fügte auch einige Daten hinzu, die benötigt werden, um eine Datei mit dem Namen "battery_discharging.txt" zu speichern. Was vermisst du noch? –
Was ist 'bat_voltage'? Wenn ich Ihr Skript auf einem viel kleineren Bildschirm (mit 2017a) ausführen, kann ich dieses Problem nicht sehen. – EBH