How do I make gaps in missing data plot lines?

25 visualizaciones (últimos 30 días)
Miriam Daughtery
Miriam Daughtery el 7 de Oct. de 2019
Respondida: Miriam Daughtery el 10 de Oct. de 2019
I'm relatively new to matlab, so I don't know if this is an easy question to answer.
How do I make gaps in my plot line where data is missing? Thank you

Respuesta aceptada

Star Strider
Star Strider el 7 de Oct. de 2019
It would be easier with your data.
One option is to fill the missing entries with NaN values:
x = [1:10 15:20]; % Create Vector (11:14 Missing)
y = [rand(1,10) rand(1,6)]; % Create Vector (11:14 Missing)
figure
plot(x, y)
grid
dx = (diff([0 x])); % Differences Between Coinsecutive Elements
xnan = nan(1, dx(dx > 1)-1); % ‘NaN’ Vector (Fill Missing Elements)
dxi = find(dx > 1); % First Index Of Missing Elements
xc = [x(1:dxi-1) xnan x(dxi:dxi+numel(xnan)+1)]; % Replace Missing Elements With ‘xnan’ Vector
yc = [y(1:dxi-1) xnan y(dxi:dxi+numel(xnan)+1)]; % Replace Missing Elements With ‘xnan’ Vector
figure
plot(xc, yc)
grid
Experiment with your data to get the result you want.

Más respuestas (2)

Daniel M
Daniel M el 7 de Oct. de 2019
help plot
You are the one telling Matlab to plot a line between your data points. Try
plot(x,y,'c.')
  1 comentario
Miriam Daughtery
Miriam Daughtery el 7 de Oct. de 2019
I want to keep the line but just leave a gap between the points where data us missing
this is my script:
d = dir('*.txt');
t = [];
T = [];
S = [];
O = [];
for I= 1 : length(d)
[tmpt,tmpT,tmpS,tmpO]=process_datafile(d(I).name);
t = [t tmpt];
T = [T tmpT];
S = [S tmpS];
O = [O tmpO];
end
subplot(3,1,1)
plot(t,T, '.k-', 'MarkerEdgeColor','r', 'MarkerFaceColor','r', 'MarkerSize',9)
x=-100:0.5:100;
y=x.^5-x.^2;
xlabel ('Day Of Year')
ylabel ('SST (^oC)')
grid on
legend('2013','2012')
hold on
title ('L4 daily mean sea surface temperature, salinity and O_2 levels 2012-2013')
subplot(3,1,2)
plot(t,S, '.k-', 'MarkerEdgeColor','r', 'MarkerFaceColor','r', 'MarkerSize',9)
xlabel ('Day Of Year')
ylabel ('Salinity (ppt)')
grid on
legend('2013','2012')
hold on
subplot(3,1,3)
plot(t,O, '.k-', 'MarkerEdgeColor','r', 'MarkerFaceColor','r', 'MarkerSize',9);
xlabel ('Day Of Year')
ylabel ('O_2 levels (%)')
grid on
legend('2013','2012')
hold on

Iniciar sesión para comentar.


Miriam Daughtery
Miriam Daughtery el 10 de Oct. de 2019
Thanks everyone

Categorías

Más información sobre Graphics Object Properties en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by