2016-05-27 31 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