有了这样的数据
Sensitivity,Recall,ID,Param1,Param2
0.89,0.551,run1,A1,alpha1
0.93,0.78,run1,A2,alpha2
0.54,0.76,run1,A2,alpha3
0.95,0.99,run2,A1,alpha1
0.354,0.445,run3,A1,alpha1
0.89,0.72,run4,A2,alpha1
可以通过预处理来分离ID中的图。但是,我无法弄清楚如何为第一列设置颜色并为第二列设置标记形状并将它们添加到图例中。
我的第一个想法是将 Param1 和 Param2 连接成单个列(如“A1-alpha1”)。将数据分成两部分,如下所示:
#A2
Sensitivity,run1-alpha2,run1-alpha3,run4-alpha1
0.93,0.78,,
0.54,,0.76,
0.89,,,0.72
#A1
Sensitivity,run1-alpha1,run2-alpha1,run3-alpha1
0.89,0.551,,
0.95,,0.99,
0.354,,,0.445
代码是
set datafile separator comma
set terminal pngcairo
set output "test2.png"
set multiplot layout 1,2
set xlabel "A1"
plot for [i=2:4] 'test2.csv' index "A1" u 1:i title columnhead(i) ps 3
set xlabel "A2"
plot for [i=2:4] 'test2.csv' index "A2" u 1:i title columnhead(i) ps 3
unset multiplot
keyentry
分别组成图例标题和点样本。为了给出一个极端的情况,这里有一个简单的图,它复制了您想要的 Param2 条目:
set key outside box right reverse Left samplen 1
plot sinc(x) with lines notitle, \
keyentry with points pt 7 lc "black" title "alpha1", \
keyentry with points pt 9 lc "black" title "alpha2", \
keyentry with points pt "+" tc "black" title "alpha3"