legend problem when plotting netcdf data

1 view (last 30 days)
I want to plot netcdf file (.nc) and the problem is in the legend as shown in picture below.
In the picture above, the legend should be in green line as well, however the result is still in red color line.
Here is my script:
x1=ncread('roms_his.nc','x_rho');
time1=ncread('roms_his.nc','ocean_time');
b1=ncread('roms_his.nc','bath');
bed=30-ncread('roms_his.nc','bath');
plot(x1,(squeeze(bed(:,1,1))),'red','LineWidth',2);
hold on
plot(x1,(squeeze(bed(:,1,19))),'green','LineWidth',2);
hold off
xlabel('Length Distance, [m]')
ylabel('Bed elevation, [m]')
title ('Bed elevation along length distance after 75days (morpholofical factor=200)')
xlim([0 1200])
ylim([-1.3 1.1])
legend('initial(red)','morphfac=200(green)','Location','southwest','NumColumns',3)
I also try to change the legend setting, but the result is shown in picture below.
Can you help me to tackle this issue?
Thanks before.
Regards,
Luh

Answers (2)

DGM
DGM on 11 Apr 2021
It's usually better to give legend the handles associated with the plots:
h1=plot(x,thing1,'b'); hold on;
h2=plot(x,thing2,'r');
legend([h1,h2],{'Thing 1','Thing 2'},'location','southwest')
  5 Comments
DGM
DGM on 11 Apr 2021
Oh. I'm sorry. I didn't notice that x1 wasn't a vector. I'm still not sure what x1 looks like in relation to the data series. Could you not just use x1(:,1)? Surely there's redundancy in x1 if the plots are coming out coincident. I'm inclined to doubt that you need all 62 columns.
Walter Roberson
Walter Roberson on 11 Apr 2021
Your code is extracting one column for start and for day75, but your x1 might be something that is not a vector.

Sign in to comment.


Luh Putri Adnyani
Luh Putri Adnyani on 4 May 2021
Hi all, thanks all for your help. i already solved this problem. I just need to squeeze x as well so i don't have any problem again in my legend.

Products

Community Treasure Hunt

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

Start Hunting!