How to avoid undercase in plot legend?

Hello,
i have names like:
roc_file_name =
'003_m1_30_90_ramp_20200611_200632_SNR_F1_PLL.mat'
  1. how can i avoid the lower case in legend?
  2. How can i open new legends "on the fly" (somethink like hold on for plots)
And another question, by the way -
if I have a full path:
fullfile(FilePath,roc_file_name)
ans = '/home/user/workspace/QT/Software_2.0_QT/IO/Motor_Set_1/AKG_C1000S/Distance_0.5m/Scenario_M1/003_m1_30_90_ramp_20200611_200632/003_m1_30_90_ramp_20200611_200632_SNR_F1_PLL.mat'
can I easy convert to
short_name = 'MS1/AKG/0.5m/M1/003' or short_name = 'MS1_AKG_0.5m_M1_003' or simmilar?
Thank you!

 Respuesta aceptada

Star Strider
Star Strider el 24 de Jun. de 2020
Try this:
legend('003_m1_30_90_ramp_20200611_200632_SNR_F1_PLL.mat', 'Interpreter','none')
It ‘turns off’ the existing interpreter for that legend object only. (This also works for other text objects.)
.

7 comentarios

Nik Rocky
Nik Rocky el 24 de Jun. de 2020
Thank you for answer, but its not working! Absolutley no effect!
your example looks so
It worked correctly when I tested it (in R2020a), or I would not have posted it.
My test code:
x = 1:20;
y = rand(size(x));
figure
plot(x, y)
legend('003_m1_30_90_ramp_20200611_200632_SNR_F1_PLL.mat', 'Interpreter','none')
My result:
It obviously worked correctly for me.
.
Nik Rocky
Nik Rocky el 24 de Jun. de 2020
It seams to be a version Problem:
Do you know maybe how to put multiple Legend for anknown amount of Measures? (in foor loop)
I print allready al 3 files in directory, but still one (last) name
Code:
steps_SNR = 1; %%%input
i = dir('**/*.mat');
for p = 1:length(i)
roc_file_name = i(p).name;
load(roc_file_name)
disp(roc_file_name)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SNR_help = ((length(M)-1)/2)*steps_SNR;
SNR = -SNR_help:steps_SNR:SNR_help;
%figure('Name',' receiver operating characteristic','NumberTitle','on');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
hold all
p1 = plot(M(:,2),M(:,1),'--o');
buffer = [.1 .3 .5];
buffer = repmat(buffer,1,ceil(numel(M(:,2))/numel(buffer)));
buffer(numel(M(:,2))+1:end) = [];
[~, ySortIdx] = sort(M(:,2));
buffer(ySortIdx) = buffer;
labelpoints(M(:,2),M(:,1), SNR, 'E', buffer)
%%%%%%%%%%%%%%%%%%%%%%%%%%%
hold all
lgd = legend([p1],roc_file_name,'Interpreter','none','Location','Best');
title(lgd,'Compare AKG and Sony')
help_x = 0:0.1:1;
help_y = 0:0.1:1;
plot(help_x,help_y,'--','Color','g');
xlabel('False discovery rate')
ylabel('True positive rate')
xlim([0 1]);
ylim([0 1]);
end
Star Strider
Star Strider el 24 de Jun. de 2020
Editada: Star Strider el 24 de Jun. de 2020
That may be.
The only work-around I am aware of is to replace the underscores (_) with backslant-underscores (\_).
Try this:
legend(strrep('003_m1_30_90_ramp_20200611_200632_SNR_F1_PLL.mat','_','\_'))
You can do it manually if you like. I use strrep here.
EDIT — (24 Jun 2020 at 21:48)
Another option:
hl = legend('003_m1_30_90_ramp_20200611_200632_SNR_F1_PLL.mat');
set(hl, 'Interpreter','none')
I have not needed to do this in years, so I just now remembered it:
.
Nik Rocky
Nik Rocky el 25 de Jun. de 2020
Perfekt, thank you! It works!
Star Strider
Star Strider el 25 de Jun. de 2020
As always, my pleasure!

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Preguntada:

el 24 de Jun. de 2020

Comentada:

el 25 de Jun. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by