Help with Legend for Plot

7 次查看(过去 30 天)
Alex
Alex 2022-11-12
回答: Alex 2022-11-12
I am struggling to clean up the legend for the final figure. I only want to label y3T1, y4T1, y5T1, y6T1, and y7T1. I've tried using the plot editor but can't seem to figure out how to only have those specific data points only.
Attached is the main script (T1) the curve fits (T1Fit) and the raw data i'm working with.
Appreciate any help!

采纳的回答

Alex
Alex 2022-11-12
Solved it! I had to call the certain indices for p1-p5 in the legend.
legend([p1(1),p2(1),p3(1),p4(1),p5(1)], 'CuSO4-0.625%', 'CuSO4-1.25%', 'CuSO4-2.5%', 'CuSO4-5%','CuSO4-10%')

更多回答(2 个)

VBBV
VBBV 2022-11-12
clc; % Clear the command window.
close all;
filename = 'amplitudeT1cleaned.xlsx';
data = readtable(filename);
Warning: Column headers from the file were modified to make them valid MATLAB identifiers before creating variable names for the table. The original column headers are saved in the VariableDescriptions property.
Set 'VariableNamingRule' to 'preserve' to use the original column headers as table variable names.
VN = data.Properties.VariableNames
VN = 1×9 cell array
{'MineralOil'} {'Glycerol'} {'CuSO40_625_'} {'CuSO41_25_'} {'CuSO42_5_'} {'CuSO45_'} {'CuSO410_'} {'tau'} {'t0_625'}
tau = table2array(data(:,8))/1000;
y= table2array(data);
y1= table2array(data(:,1));
y2= table2array(data(:,2));
y3T1= table2array(data(:,3));
y4T1= table2array(data(:,4));
y5T1= table2array(data(:,5));
y6T1= table2array(data(:,6));
y7T1= table2array(data(:,7));
t1 = table2array(data(:,9));
figure(1)
plot(t1,y3T1,t1,y4T1,t1,y5T1,t1,y6T1,t1,y7T1)
grid
xlabel('Time')
ylabel('Amplitude')
legend(VN{3:7}, 'Location', 'best')
Warning: Error updating Legend.

String scalar or character vector must have valid interpreter syntax:
CuSO410_
err = std(y3T1)/length(y3T1)
err = 0.0492
err1 = std(y4T1)/length(y4T1)
err1 = 0.0421
err2 = std(y5T1)/length(y5T1)
err2 = 0.0328
err3 = std(y6T1)/length(y6T1)
err3 = 0.0159
err4 = std(y7T1)/length(y7T1)
err4 = 0.0136

Walter Roberson
Walter Roberson 2022-11-12
errarbar(t1,y7T1,err4)
That should be errorbar() not errarbar()
legend('CuSO4-0.625%', 'CuSO4-1.25%', 'CuSO4-2.5%', 'CuSO4-5%','CuSO4-10%')
change that to
legend([p1;p2;p3;p4;p5], {'CuSO4-0.625%', 'CuSO4-1.25%', 'CuSO4-2.5%', 'CuSO4-5%','CuSO4-10%'})
  3 个评论
Walter Roberson
Walter Roberson 2022-11-12
Reminder that people typically cannot examine fig files from their phone, so images are typically more useful than fig files
Alex
Alex 2022-11-12
Sorry I didn't Think about that!

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by