最近绘制一些ROC,CMC曲线之类的,发现LFW数据集给出的是gnuplot工具,就了解了下,发现这个工具真的是太好用了,简直就是神器。
gnuplot 官网: http://www.gnuplot.info/
虽然都是命令绘制,但是使用起来非常的方便,犹如使用LaTeX写paper一样,使用一次,就会发现以后不想用别的了。
Gnu
plot是一个命令行的交互式绘图工具(command-driven interactive function plotting program)。用户通过输入命令,可以逐步设置或修改绘图环境,并以图形描述数据或函数,使我们可以借由图形做更进一步的分析。
gnu
plot是由Colin Kelly和Thomas Williams于1986年开始开发的科学绘图工具,支持二维和三维图形。它的功能是把数据资料和数学函数转换为容易观察的平面或立体的图形,它有两种工作方式,交互式方式和批处理方式,它可以让使用者很容易地读入外部的数据结果,在
屏幕上显示图形,并且可以选择和修改图形的画法,明显地表现出数据的特性。
先简单的给出一段绘制ROC曲线的代码:
#!/usr/bin/gnuplot
set term png size 800,800
set size 1,1
set output "lfw_roc_curve.png"
set xtics .1
set ytics .1
set grid
set size ratio -1
set ylabel "False Reject Rate"
set xlabel "False Accept Rate"
#set title "Image-Restricted and Aligned" font "giant"
set arrow from 0.0,0.0 to 1,1 nohead lt 0
set key right top
plot "hybrid_with_sift_aligned.txt" using 1:2 with line lt 2 lw 2 title "BMVC 2009 [7]", \
"accv09-wolf-hassner-taigman-roc.txt" using 1:2 with line lt 3 lw 2 title "ACCV 2009 [8]", \
"aligned_lbp_sqrt_csml_roc.txt" using 1:2 with line lt 4 lw 2 title "LBP + CSML, ACCV 2010 [9]", \
"aligned_csml_svm_roc.txt" using 1:2 with line lt 5 lw 2 title "CSML + SVM, ACCV 2010 [9]", \
"pinto-cox-fg2011-roc.txt" using 1:2 with line lt 6 lw 2 title "FG 2011 [10]", \
"Haejong_Milanfar_LARK_supervised.txt" using 1:2 with line lt 7 lw 2 title "TIFC 2011 [11]", \
#"dml_eig_SIFT_restricted_jmlr.txt" using 1:2 with line lt 8 lw 2 title "DML-eig SIFT", \
"dml_eig_combined_restricted_jmlr.txt" using 1:2 with line lt 9 lw 2 title "DML-eig combined, JMLR 2012 [12]"
很简单的设置图像的格式,大小,ROC曲线的相对大小,坐标尺度变化大小,坐标轴的标题,然后设置图例位置,根据数据文件绘制曲线,绘制曲线的过程中可以设置曲线的line style (lt), line width (lw) 曲线对应的标题 title
using 1:2
的意思是使用文本文件中的第一列数据作为x轴,第二列数据作为y轴。
数据采用一个空格分隔开。
上面代码绘制得到的ROC曲线如图:
还是很强大的。
gnuplot