How to label smooth spline graph?

I have a new problem now on how to label them. by using legend code, seems it be different between points and line.. i use spline code. see the picture:
and here is my code:
P_load = [0,8000,10000,11000,20000,25000,25000,21000,30000,20000,12000,45000....
12000,45000,23300,12000,15000,17000,20000,16000,12200,1000,2000,100];% Watts
x = 1:numel(P_load)
xx = linspace(1,numel(x),1000)
yy = interp1(x,P_load,xx,'spline')
plot(x,P_load,'*g',xx,yy,'-k', 'linewidth', 2)
P_gen = ones(1,24).*29000; % Watts
P_lowerlimit = ones(1,24).*10000; % Watts
hold on
xx=linspace(1,numel(x),1000)
yy=interp1(x,P_gen,xx,'spline')
plot(x,P_gen,'--r',xx,yy,'--r')
xx=linspace(1,numel(x),1000)
yy=interp1(x,P_lowerlimit,xx,'spline')
plot(x,P_lowerlimit,'--m',xx,yy,'--m')
grid
xlim([1,24])
xlabel('Time (hours)')
ylabel('Power (Watts)')
hold on
Pnet1 = [];
Pbat1 = [];
Pnet2 = [];
Pbat2 = [];
for h = 1:24
Pnet1(h) = P_gen(h) - P_load(h);
Pnet2(h) = P_lowerlimit(h) - P_load(h);
if Pnet1(h) > 0
Pbat1(h) = 0;
else
Pbat1(h) = P_load(h) - P_gen(h);
end
if Pnet2(h) < 0
Pbat2(h) = 0;
else
Pbat2(h) = [P_gen(h) - P_load(h)]/3;
end
end
xx = linspace(1,numel(x),1000)
yy = interp1(x,Pbat1,xx,'spline')
plot(x,Pbat1,'-c',xx,yy,'-c','linewidth', 3)
xx = linspace(1,numel(x),1000)
yy = interp1(x,Pbat2,xx,'spline')
plot(x,Pbat2,xx,yy,'-b','linewidth', 3)
legend('Load','Generator','Lower limit','Battery energy(Discharge)','Battery energy(Charge)')
How to make them be one? as they need to be one. Thanks :D

 Accepted Answer

madhan ravi
madhan ravi on 1 Nov 2018
Edited: madhan ravi on 1 Nov 2018
P_load = [0,8000,10000,11000,20000,25000,25000,21000,30000,20000,12000,45000,12000,45000,23300,12000,15000,17000,20000,16000,12200,1000,2000,100];% Watts
x=1:numel(P_load)
xx=linspace(1,numel(x),1000)
yy=interp1(x,P_load,xx,'pchip')
plot(xx,yy,'-*g')
P_gen = ones(1,24).*29000; % Watts
P_lowerlimit = ones(1,24).*10000; % Watts
hold on
xx=linspace(1,numel(x),1000)
yy=interp1(x,P_gen,xx,'spline')
plot(xx,yy,'-og','linewidth', 2)
xx=linspace(1,numel(x),1000)
yy=interp1(x,P_lowerlimit,xx,'spline')
plot(xx,yy,'-b','linewidth', 2)
grid
xlim([1,24])
xlabel('Time (hours)')
ylabel('Power (Watts)')
hold on
Pnet1 = [];
Pbat1 = [];
Pnet2 = [];
Pbat2 = [];
for h = 1:24
Pnet1(h) = P_gen(h) - P_load(h);
Pnet2(h) = P_lowerlimit(h) - P_load(h);
if Pnet1(h) > 0
Pbat1(h) = 0;
else
Pbat1(h) = P_load(h) - P_gen(h);
end
if Pnet2(h) < 0
Pbat2(h) = 0;
else
Pbat2(h) = [P_gen(h) - P_load(h)]/3;
end
end
xx=linspace(1,numel(x),1000)
yy=interp1(x,Pbat1,xx,'spline')
plot(xx,yy,'-y','linewidth', 3)
xx=linspace(1,numel(x),1000)
yy=interp1(x,Pbat2,xx,'spline')
plot(xx,yy,'-r','linewidth', 3)
legend('Load','Generator','Lower limit','Battery energy(Discharge)','Battery energy(Charge)'

4 Comments

madhan ravi
madhan ravi on 1 Nov 2018
Edited: madhan ravi on 1 Nov 2018
See edited answer now
madhan ravi
madhan ravi on 1 Nov 2018
Edited: madhan ravi on 1 Nov 2018
If something is not clear let know else accept the answer so people know the question is solved
It solved. I will do some modification, thanks a lot :) u r superb!
madhan ravi
madhan ravi on 1 Nov 2018
Edited: madhan ravi on 1 Nov 2018
Anytime :)

Sign in to comment.

More Answers (0)

Categories

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!