How make mutiple plots in one plot
    6 ビュー (過去 30 日間)
  
       古いコメントを表示
    
Hello, 
i have a little problem i want to make multiple plots on one plot so i saw some videos and try it works but the problem is in the video he used a fonction that he created. My problem is i wrote a code where i added a path so that when i want to plot my values the path will be open automatically now i want to plot all this values in the same plot so that i can see all the graphic in on plot and an don't know how to fo it. Thank for the reply. 
%% Temperatur Verlauf der Abkühlkurve %%%
clear
%% open the file with the data 
for i=1:5
cd 'C:\Users\rodri\Desktop\Bias\Tests\21_03_10_400_1000_1,5';     % command open the path saved in the file Tests  
[file,path] = uigetfile('*.txt');           % find the file with the txt type  
xlsfile = strcat(file,'.xlsx');             % convert the txt file to excel file  
excel_path_save = 'C:\Users\rodri\Desktop\Bias\Excel\'; % command save the excel file in the Excel's file  
xlsfile = strcat (excel_path_save, xlsfile );   % concatenates both paths together 
end 
%% settings %%%
startpower = 0.005000;                      % standard power in the labview programm 
pyro_min = 500;                             % minimum value of the Quotienten pyrometer change to pyrometer typ 
pyro_max  =2200;                            % maximum value     
I_min = 0;                                  % minimum output current value 
I_max = 20;                                 % maximum current value 
%% read data %%%
table = readtable(file);                    % read the table 
time = table2array(table(:,1));             % table of time 
power = table2array(table(:, 2));           % table of power
temp = table2array(table(:, 3));            % table of temperature 
%% Delete values prior to CNC-trigger %%%
startindex = find(power==startpower);       
time(1:startindex-1) = [];
temp(1:startindex-1) = [];
%% current to temperature %%%
temp= temp*(pyro_max-pyro_min)/(I_max-I_min)*1000+pyro_min;     % calculate and convert the value of the- 
                                                                % current to the temperature 
%% write Excel file %%%
header = {'Time [ms]','Temperature [°C]'};
output = [header; num2cell([time,temp])];
xlswrite(xlsfile,output)
%% Plot %%%
for i=1:5
t_max = max(temp);
plot(time,temp,'LineWidth',2.0);
text (max(time)/2,2000,strcat('T_{max} =',{' '},string(t_max),'°C'),'FontSize',18,'FontName','Arial');
xlabel('Zeit');
ylabel('Temperatur');
title('Temperaturverlauf der Abkühlkurve');
legend('t_max')
ax.XColor = [0 0 0];
ax.YColor = [0 0 0];
%xlim([0 roundn(max(time)+501,3)]);
xlim([0 20000]);
ylim([0 2500]);
set(gca,'FontSize',18,'FontName','Arial','XColor','k','YColor','k','ytick',[0 500,1000,1500,2000,2500],'yticklabel',{0 500,1000,1500,'°C',2500},'xtick',[0 2000,4000,6000,8000,10000,12000,14000,16000,18000,20000],'xticklabel',{0 2000,4000,6000,8000,10000,12000,14000,16000,'ms',20000});
hold on 
plot(time,temp,'LineWidth',2.0);
hold on 
plot(time,temp,'LineWidth',2.0);
hold on 
plot(time,temp,'LineWidth',2.0);
hold on 
plot(time,temp,'LineWidth',2.0);
hold on 
plot(time,temp,'LineWidth',2.0);
pause (2)
end
that is the code i wrote i added the files that i want to plot 
2 件のコメント
  Klaudio Luku
 2021 年 3 月 11 日
				
      編集済み: Klaudio Luku
 2021 年 3 月 11 日
  
			Try to open a figure, before plotting, typing:
figure;
hold on;
% then plot ----
and i think that one single hold on is enought, better write
hold on;
% --- all the plots ---
hold off;
採用された回答
  Jorg Woehl
      
 2021 年 3 月 11 日
        
      編集済み: Jorg Woehl
      
 2021 年 3 月 11 日
  
      The issue is that you are opening your files in the first loop, one after another, but only the last opened file will be processed in your second loop... and five times in a row 😉
I would suggest rearranging your code as follows (I inserted a legend that displays the filename of the data instead of just 'tmax'):
%% Temperatur Verlauf der Abkühlkurve %%%
clear
%% settings %%%
startpower = 0.005000;                                          % standard power in the labview programm 
pyro_min = 500;                                                 % minimum value of the Quotienten pyrometer change to pyrometer typ 
pyro_max  =2200;                                                % maximum value     
I_min = 0;                                                      % minimum output current value 
I_max = 20;                                                     % maximum current value 
cd 'C:\Users\rodri\Desktop\Bias\Tests\21_03_10_400_1000_1,5';   % command open the path saved in the file Tests  
excel_path_save = 'C:\Users\rodri\Desktop\Bias\Excel\';         % command save the excel file in the Excel's file  
%% prepare figure for plotting %%
axes('XLim',[0 20000], 'YLim',[0 2500],...
    'FontSize',18, 'FontName','Arial', 'XColor','k', 'YColor','k',...
    'YTick',[0 500,1000,1500,2000,2500], 'YTickLabel',{0 500,1000,1500,'°C',2500},...
    'XTick',[0 2000,4000,6000,8000,10000,12000,14000,16000,18000,20000],...
    'XTickLabel',{0 2000,4000,6000,8000,10000,12000,14000,16000,'ms',20000});
xlabel('Zeit');
ylabel('Temperatur');
title('Temperaturverlauf der Abkühlkurve');
lgd = legend;
hold on;
for i=1:5
    %% open the file with the data 
    [file,path] = uigetfile('*.txt');               % find the file with the txt type  
    xlsfile = strcat(file,'.xlsx');                 % convert the txt file to excel file  
    xlsfile = strcat (excel_path_save, xlsfile );   % concatenates both paths together 
    %% read data %%%
    table = readtable(file);                    % read the table 
    time = table2array(table(:,1));             % table of time 
    power = table2array(table(:, 2));           % table of power
    temp = table2array(table(:, 3));            % table of temperature 
    %% Delete values prior to CNC-trigger %%%
    startindex = find(power==startpower);       
    time(1:startindex-1) = [];
    temp(1:startindex-1) = [];
    %% current to temperature %%%
    temp= temp*(pyro_max-pyro_min)/(I_max-I_min)*1000+pyro_min; % calculate and convert the value of the- 
                                                                % current to the temperature 
    %% write Excel file %%%
    header = {'Time [ms]','Temperature [°C]'};
    output = [header; num2cell([time,temp])];
    xlswrite(xlsfile,output)
    %% Plot %%%
    t_max = max(temp);
    plot(time,temp,'LineWidth',2.0);
    text (max(time)/2,2000,strcat('T_{max} =',{' '},string(t_max),'°C'),'FontSize',18,'FontName','Arial');
    %legend('t_max')
    lgd.String{i} = file;
    %xlim([0 roundn(max(time)+501,3)]);
end
hold off;
4 件のコメント
  Jorg Woehl
      
 2021 年 3 月 11 日
				
      編集済み: Jorg Woehl
      
 2021 年 3 月 11 日
  
			You could put them at different positions in your plot using
text (max(time)/2, 2000+i*200,... );
or something similar (you'll have to play around with it).
Otherwise, why don't you put the max. temperature directly into the legend?
lgd.String{i} = [file '; T_{max} = ' num2str(t_max) ' °C'];
その他の回答 (0 件)
参考
カテゴリ
				Help Center および File Exchange で Spreadsheets についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
