相信很多理工科研究生们在学术研究时,通常会画ROC曲线图来表示自己实验结果的优越。但是在paper时,需要和其他方法进行对比,因此,你需要复现其他人的方法,然后画出ROC曲线,再将自己的ROC曲线与其他的画到同一个图中进行对比。好了,上面全是废话,下面来重点:
通常,如果你保存着x,y数据那就不用看了,你可以直接画,如果你手里只有生成的.fig图,那么怎么合并呢,方法有下面两种情况:
1、每张fig图中只有1条线,你把每张的合并到一张图中(假如两张,分别为1.fig和2.fig):
h2=open('1.fig');
a_2=get(h2);
b_2=get(a_2.Children);
c_2=get(b_2.Children);
xx_4=c_2.XData;//xx_4,yy_4就是需要的x,y数据;
yy_4=c_2.YData;
h3=open('2.fig');
a_3=get(h3);
b_3=get(a_3.Children);
c_3=get(b_3.Children);
xx_5=c_3.XData;
yy_5=c_3.YData;
plot(xx_4,yy_4,'--g','LineWidth',1);
hold on;
plot(xx_5,yy_5,'-.r','LineWidth',1);
grid on %显示网格线
%
xlabel('False Positive Rate');
ylabel('True Positive Rate');
legend('');
2、如果有一张图有2条或者以上的线,假设图为3.fig
open('3.fig');
h=findobj(gcf,'type','line');
h1=get(h);
[xx_1,xx_2,xx_3]=h1.XData;//xx_1,xx_2,xx_3是3个线的x数据;
[yy_1,yy_2,yy_3]=h1.YData;//yy_1,yy_2,yy_3是3个线的y数据;
其余操作和第一种状况相同,
希望可以解决部分理工科学生画图的疑惑,嘻嘻。