0
votes

This is my plot code. The problem is that two lines in my plot have same colors, I need one special for each line in the plot (totally 4 lines).

for i=1:nFolderContents;
    [~, data] = hdrload(folderContents(i,:));
    if size(folderContents(i,:),2)<size(folderContents,2);
        temp=folderContents(i,6:9);
    else
       temp=folderContents(i,6:7);
    end
    temp1(i)=strread(temp);
    w=2*pi*(data([35 51 68 101],1));
    permfreespace=8.854e-12;
    perm=data([36 52 69 101],3);
    cond=perm.*w.*permfreespace;
    conds([36 52 69 101],i)=cond;
    hold on

end


figure(4);plot(temp1,conds);
gcf=figure(4);
set(gcf,'Position', [0 0 295 245]);
xlabel('Temperature [\circC]'), ylabel ('Conductivity [s/m]');
title('Different frequencies');
legend('1.02 GHz','1.50 GHz','2.01 GHz','3 GHz');
axis([20 52 0 4]);
box on 

new code:

conds=zeros(101,28);
for i=1:nFolderContents;
    [~, data] = hdrload(folderContents(i,:));
    if size(folderContents(i,:),2)<size(folderContents,2);
        temp=folderContents(i,6:9);
  else
   temp=folderContents(i,6:7);
    end
    temp1(i)=strread(temp);
    w=2*pi*(data([35 51 68 101],1));
    permfreespace=8.854e-12;
    perm=data([36 52 69 101],3);
    cond=perm.*w.*permfreespace;
    conds([36 52 69 101],i)=cond;
    hold all

end
diff = hsv(101); 
for i=1:101
    figure(4),plot(temp1(1,:),conds(i,:),'color',diff(i,:));
    hold all;
end
gcf=figure(4);
set(gcf,'Position', [0 0 295 245]);
xlabel('Temperature [\circC]'), ylabel ('Conductivity [s/m]');
title('Different frequencies');
legend('1.02 GHz','1.50 GHz','2.01 GHz','3 GHz');
axis([20 52 0 4]);
box on 

the problem is that I get same color in the legend box now.

2
Use hold all instead of hold onDan
still same problem with hold allyaya
What are the dimensions of temp1 and of conds?Dan
Hi, temp1=1*31 and cond=101*31yaya

2 Answers

1
votes

You defined the variable conds with 101 lines (of zeros), then changed 4 lines to some values. Now you want plotting only those 4 lines, but your loop runs 101 times, so it plots also the zero-lines. This is the reason you get a line at zero (actually 97 lines...). This is also the reason that you get same colors for the 4 curves, probably the variety of graph colors, "wasted" on the zero lines.

You should run the loop only 4 times, using

rows=[36 52 69 101] ;
color='rgbc'
for i=1:4
   plot (temp(1,:), cond(rows(i),:), 'color',color(i));
   hold on
end 
hold off

Actually, you don't need this conds=zeros(101,28) at all, just correct the line that insert the values to conds to:

conds=cond([36 52 69 101],:);

And, I don't think you need it inside the first loop.

0
votes

Use HSV to get different colors:

diff = hsv(101); 
for i=1:101
    plot(temp1(1,:),conds(i,:), 'color',diff(i,:));
    hold on;
end