How can I plot outliers and original data together?
    7 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
I  set a threshold for my outliers, a then find them by "any" command. Now I want to plot the original data and the outliers together. How can I do that?
Temp = data(:,2);   % Separating the feature vector
Temp_z_score = (Temp - mean(Temp)) / std(Temp);  % Calculation of the z-score (z-score = the number of standard deviations a point is below or over the mean) 
threshold = abs(Temp_z_score)>1.8;
U = any(threshold,2);
0 Kommentare
Antworten (1)
  Cris LaPierre
    
      
 am 15 Okt. 2022
        
      Bearbeitet: Cris LaPierre
    
      
 am 15 Okt. 2022
  
      Wouldn't plotting the original data already contain the outliers? I assume you want to plot each group with a different linespec.
Since threshold is a logical array, use logical indexing when you plot. See the bottom of this page for an explanation.
Temp = rand(100,1);
Temp_z_score = (Temp - mean(Temp)) / std(Temp);
threshold = abs(Temp_z_score)>1.8;
plot(Temp(~threshold),'bo','DisplayName','Data')
hold on
plot(Temp(threshold),'r*','DisplayName','Outlier')
hold off
legend
2 Kommentare
  Cris LaPierre
    
      
 am 15 Okt. 2022
				You need to specify an x value then. You have not indicated there is one in your OP. If you don't have one, then x is the element number.
Temp = rand(100,1);
X=1:length(Temp);
Temp_z_score = (Temp - mean(Temp)) / std(Temp);
threshold = abs(Temp_z_score)>1.8;
plot(X(~threshold),Temp(~threshold),'bo','DisplayName','Data')
hold on
plot(X(threshold),Temp(threshold),'r*','DisplayName','Outlier')
hold off
legend
Siehe auch
Kategorien
				Mehr zu Line Plots finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




