How can I plot outliers and original data together?

조회 수: 4 (최근 30일)
Seyed Navid Shoaiby
Seyed Navid Shoaiby 2022년 10월 15일
댓글: Cris LaPierre 2022년 10월 15일
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);

답변 (1개)

Cris LaPierre
Cris LaPierre 2022년 10월 15일
편집: Cris LaPierre 2022년 10월 15일
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
Seyed Navid Shoaiby
Seyed Navid Shoaiby 2022년 10월 15일
이동: Cris LaPierre 2022년 10월 15일
This plotting does not show the outliers in correct order. I want to plot the original data, and then mark the outliers in their correct order. The resulting graph is this. I want the red points in line with other data points. Any suggestions?
Cris LaPierre
Cris LaPierre 2022년 10월 15일
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

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by