2016-05-27 30 views
-2

我有2個變量: 數量的級(S):1和30之間 真陽性率(TPR):總是0.8和1 和假陽性率(FPR)之間:0和1之間如何正確繪製這些點的形狀?

當我得到TPR和FPR,我必須分類(TPR^S)和(FPR^S),然後繪製圖形,然後獲得其他值並繪製在同一個圖中,做一個比較。

numstages=12; 
TPR=0.995; 
FPR=0.5; 

for i=1:numstages 
    TPRstage(i)=(TPR^i); 
    FPRstage(i)=(FPR^i); 
end 


TPRstage=fliplr(TPRstage); 
FPRstage=fliplr(FPRstage); 


figure; 
plot(FPRstage,TPRstage,'-'); 

enter image description here

figure; 

plot(FPRstage, TPRstage, '+r'); % plot the original points 
n = numel(FPRstage); % number of original points 
xi = interp1(1:n, FPRstage, linspace(1, n, 10*n)); % new sample points 
yi = interp1( FPRstage, TPRstage, xi); 
hold all; 
plot(xi, yi); % should be smooth between the original points 

enter image description here

正如在圖中看到,這是TPR的相同值的曲線圖和FPR的3:0.2,0.3,0.5。 我希望X和Y軸位於[0,1]之間。 當FPR爲0.3或0.2時,我希望該線從H平面到X的1,並從(0,0)開始。 Similair到這一個: enter image description here

以及0和0.8小unalf之間的尺寸看0.8和1.

回答

1

之間在曲線圖中的變化對於x軸。我已將0附加到開頭,1附加到數組xi的末尾。

xi=[0 xi 1]; 

對於y軸。該圖從y軸的0.94開始。所以我在yi的末尾添加了0.931

yi=[0.93 yi 1]; 

然後改變0.93的標籤0

set(gca,'YTick',[0.93 0.94 0.95 0.96 0.97 0.98 0.99 1]); 
set(gca,'YTickLabel',{'0','0.94','0.95','0.96','0.97','0.98','0.99','1'}); 

這裏是更新的代碼。

figure 
for index=1:3 
FPRarray=[0.2 0.3 0.5]; 

numstages=12; 
TPR=0.995; 
FPR=FPRarray(index); 

for i=1:numstages 
    TPRstage(i)=(TPR^i); 
    FPRstage(i)=(FPR^i); 
end 


TPRstage=fliplr(TPRstage); 
FPRstage=fliplr(FPRstage); 

n = numel(FPRstage); % number of original points 
xi = interp1(1:n, FPRstage, linspace(1, n, 10*n)); % new sample points 
yi = interp1( FPRstage, TPRstage, xi); 
hold all; 

xi=[0 xi 1]; 
yi=[0.93 yi max(yi)]; 
plot(xi, yi); % should be smooth between the original points 
set(gca,'YTick',[0.93 0.94 0.95 0.96 0.97 0.98 0.99 1]); 
set(gca,'YTickLabel',{'0','0.94','0.95','0.96','0.97','0.98','0.99','1'}); 
end 
+0

我看不到他們很小的東西。 @Rijul Sudhir – matlab22

+0

這是因爲'TPRstage'和'FPRstage'中的值。如果值沒有意義,那麼你可以將它歸一化爲「0」和「1」。 –

+0

無法理解它,並且您的修改顯示軸線上方的線條@Rijul Sudhir – matlab22