2015-09-23 24 views
-1

我已經在matlab中生成了一個數據集,然後在數據中嵌入了一些異常值。我想繪製它,因爲我是新的matlab中,我不知道如何從不同的符號或不同的顏色從內部指定異常值。相對於x軸,y軸以及它們兩者的偏離點。這是matlab的代碼;如何在matlab中指定不同的點

pd = makedist('Normal'); 
rng(38) 
a = random(pd,100,1); 
b = datasample(1:100,40,'Replace',false); 
pd1 = makedist('Normal','mu',10*sqrt(2),'sigma',0.1); 

a(b)=random(pd1,40,1); 
a=reshape(a,[50,2]); 
plot(a(:,1),a(:,2),'O') 

如果你能幫助我,我將不勝感激。

+0

您需要分別指定異常點。我運行你的例子,在我看來,沒有任何異常值,一切都很好地聚集在一起。 – IKavanagh

+0

@IKavanagh a(b)= random(pd1,40,1)是異常值。我想用樹不同的顏色或符號來指定這些點。你可以幫我嗎。 – user2802663

+0

由於較少的聲譽,我不能把我的身材! – user2802663

回答

0

在這個例子中我假定沿OX軸距離是點大於3是異常值和標記他們紅色(而正常點被標記爲藍色):

centroid = mean(a); 
distx = a(:,1) - centroid(1); 
disty = a(:,2) - centroid(2); 

outliers_x = distx > 3; 

plot(centroid(1), centroid(2), 'xk') 
hold on 
plot(a(outliers_x,1),a(outliers_x,2),'or') 
plot(a(~outliers_x,1),a(~outliers_x,2),'ob') 
hold off 

注意,我也顯示該質心作爲黑色的「X」標記。

hold on/hold off被用於「堆疊」的幾個地塊(或圖片) 在一起,你可能需要閱讀hold() reference。另外here你會發現哪些標記和顏色可用。

+0

感謝您的回答,但是您能否指定遠離y軸,x軸和其中兩個數據質量的點。如果你運行這個例子,你會看到我的意思是哪一個。 – user2802663

+0

好的,我更新了答案,以便它包括質心的計算以及與軸距離的一個約束。 現在是否清楚,如何篩選出所需的異常值? –

+0

@PawełKłeczek謝謝你的回答,也許我不能很好地解釋我真正想要的。實際上,我想表明,** a(:,1)> 10的觀測結果如同紅色**和** a(:2)> 10一樣是綠色**,而觀測中的** a(:, 1)和a(:,2)同時大於10,而剩下的觀察值(分別是它們在a(:,1),a(:2)中的值和a(:,1)和a(:,2)同時小於10)。 – user2802663

0

爲了回答我的問題,我寫了下面的代碼,以便用不同的顏色指定4組觀察值。

pd = makedist('Normal'); 
rng(38) 
a = random(pd,100,1); 
b = datasample(1:100,40,'Replace',false); 
pd1 = makedist('Normal','mu',10*sqrt(2),'sigma',0.1); 

a(b)=random(pd1,40,1); 
a=reshape(a,[50,2]); 

hold all; 
aa=(a >= 10 | a >= 10); 
rep=repmat(0, 1, 50); 
aaa=[rep',aa]; 
n=50; 
for i=1:n; plot(a(i,1),a(i,2),'o','col',aaa(i,:)); 
end 
相關問題