Add a box with error metrics in plot

3 visualizaciones (últimos 30 días)
Daphne PARLIARI
Daphne PARLIARI el 13 de Feb. de 2020
Comentada: Daphne PARLIARI el 27 de Feb. de 2020
Hello everyone.
I have a plot generated by Matlab to which I want to add a box containing some error metrics I produced by my own (please see attached).
These statistics are *not* the ones from Tools -> Data statistics. Is there a way to achieve that?
Thanks in advance!

Respuesta aceptada

Rik
Rik el 13 de Feb. de 2020
Editada: Rik el 13 de Feb. de 2020
You can add information to a plot with an annotation, or you can use the rectangle and text functions. The code below will read your data and adapt the example in the documentation.
file='Daily_Stats_Automn2015 Airport Temperature .csv';
%read the whole file, split at the newline, then split at the comma
headers=fileread(file);
headers=split(headers,newline);
headers=split(headers{1},',');
%read the data
data=readmatrix(file,'NumHeaderLines',1);
%format data and text to a cell array
txt=cell(numel(headers),1);
for n=1:numel(txt)
txt{n}=sprintf('%s = %.4f',headers{n},data(n));
end
figure(1),clf(1)
plot(0:10,0:10)
x = [0.35 0.5];
y = [0.6 0.5];
annotation('textarrow',x,y,'String',txt);
  5 comentarios
Rik
Rik el 26 de Feb. de 2020
If you know the order in which the parameters appear you can select them by modifying the for loop.
Daphne PARLIARI
Daphne PARLIARI el 27 de Feb. de 2020
Dear Rik, thank you for you time!
Could I ask one more thing, the answer to it I wasn't able to find in MathWorks?
The plot I want is generated well enough so far using the following lines:
%read the whole file, split at the newline, then split at the comma
headers=fileread(Calc_Stats_file);
headers=split(headers,newline);
headers=split(headers{1},',');
%read the data
data=readmatrix(Calc_Stats_file,'NumHeaderLines',1);
%format data and text to a cell array
txt=cell(numel(headers),1);
for n=1:numel(txt)-10
txt{n}=sprintf('%s = %.4f',headers{n},data(n));
end
annotation('textarrow','String',txt);
hold on;
outfile_fig=[output_path,'\',stations{i},'\','\TSHourly_OBSvsWRF.tif'];
plot_ts(All_Data.Hourly_Temp_mean(:),All_Data.Temp(:),thour(1),'hours',[vars{1},' (',varunits{1},')'],'WRF', 'Obs.',[vars{1},' timeseries for ',stations{i},' station'],outfile_fig);
hold off;
The problem is that the graph in the pop-up window disappears after 1 sec., therefore I cannot make the changes I want. Probably it's something with hold on/off I guess, but what do I do wrong?
Thank you once again!

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by