gnuplot 中具有 3 个分类变量的散点图

问题描述 投票:0回答:1

有了这样的数据

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

有没有更好的方法(特别是在图例中具有连贯的标签)? 谢谢,

gnuplot
1个回答
0
投票
您可以使用特殊的绘图组件

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"

© www.soinside.com 2019 - 2024. All rights reserved.