Gnuplot具有两种不同规格的自定义图例

Gnuplot具有两种不同规格的自定义图例,gnuplot,legend,Gnuplot,Legend,我希望gnuplot中有一个键,它不与每一条绘制的线关联,而是表示每一条线的规格 基本上,我想要的是键中的三条彩色线来表示我正在使用的三种算法。然后用三种形状表示每种算法的误差范围 所以我的钥匙看起来像这样: 红线——alg 1 蓝线——alg 2 绿线——alg 3 三角形——5% 圆圈——3% 平方——1% 我将在我的图形中有9条线,这是颜色和形状的组合,但我不希望我的图例有全部9条线,只有代表性的规格 我希望这是有道理的。如果你需要更多的澄清,请告诉我 我还没有找到太多的资源来制作一个独立

我希望gnuplot中有一个键,它不与每一条绘制的线关联,而是表示每一条线的规格

基本上,我想要的是键中的三条彩色线来表示我正在使用的三种算法。然后用三种形状表示每种算法的误差范围

所以我的钥匙看起来像这样:

红线——alg 1

蓝线——alg 2

绿线——alg 3

三角形——5%

圆圈——3%

平方——1%

我将在我的图形中有9条线,这是颜色和形状的组合,但我不希望我的图例有全部9条线,只有代表性的规格

我希望这是有道理的。如果你需要更多的澄清,请告诉我

我还没有找到太多的资源来制作一个独立于绘制线的键,所以我只对每一行设置“notitle”


实现这一点的一个简单方法是不带键地绘制数据(“键”是您所谓的“图例”的gnuplot术语),然后制作一个没有数据的键。这样,键可以包含您想要的任何内容,而不管打印的数据系列的数量和样式如何。我将其称为“假密钥”,因为它是一个密钥,但它故意具有欺骗性,因为它不是直接从可见数据系列生成的

使用“假键”打印 首先,绘制您的数据,并(如您所猜测的)使用
notitle
关键字,这样这些数据就不会显示在键中。然后,使用
NaN
(不是数字)作为数据不绘制任何内容。您可以根据需要为其命名、指定点类型、线样式等。由于它们有一个
标题
,因此它们会在键中显示您给定的标题,而实际数据(带有
notitle
)则不会显示

例如,我使用您的键规格绘制了一个图,但绘制了我自己的线:

设置终端pngcairo尺寸640480增强型
设置输出“example.png”
设置标题“使用假键打印”
#一些线条样式
设置样式行1 lc rgb“红色”lt 1
设置样式行2 lc rgb“蓝色”lt 1
设置样式线3 lc rgb“绿色”lt 1
#一些虚构的情节
设置xrange[-4*pi:4*pi]
设置Y范围[-0.3:1.1]
f1(x)=exp(-x**2/2)
f2(x)=sin(x)/x
f3(x)=0.5*sin(2*x)/x
#首先用“notitle”打印数据,然后用NaN生成一个假键
地块f1(x)ls 1 notitle、f2(x)ls 2 notitle、f3(x)ls 3 notitle、\
NaN ls 1标题“Alg.1”、NaN ls 2标题“Alg.2”、NaN ls 3标题“Alg.3”\
带有点数pt 9 lc rgb“黑色”标题“5%错误”的NaN\
带有点pt 7 lc rgb“黑色”标题“3%错误”的NaN\
带有点pt 5 lc rgb“黑色”标题“1%错误”的NaN
请注意我是如何预先预定义线条样式的。这有助于保持打印数据(例如
f1(x)ls 1 notitle
)与键中的内容(例如
NaN ls 1 title“Alg.1”
)同步。这样,行样式规范在代码中只出现一次。要改变它,你只需要在一个地方改变它

还请注意,关键点中的虚拟点形状是如何使用点和使用lc rgb“黑色”绘制的。将它们变为黑色表示它们是算法行的红/绿/蓝中性。这是为了向观众建议,形状表示与颜色不同的参数

线条风格健全的建议 您的示例图有九个数据系列。您可以尝试预先使用以下方法指定线样式:

#要使用的颜色和点类型
alg1_color=“红色”
alg2_color=“蓝色”
alg3_color=“绿色”
err5_pt=9#pt=9=三角形
err3_pt=7#pt 7=圆
err1_pt=5#pt 5=square
#算法1行
设置样式行1 lc rgb alg1_颜色lt 1 pt err5_pt
设置样式行2 lc rgb alg1_颜色lt 1点错误3点
设置样式行3 lc rgb alg1_颜色lt 1 pt err1_pt
#算法2线
设置样式行4 lc rgb alg2_颜色lt 1点错误5点
设置样式行5 lc rgb alg2_颜色lt 1点错误3点
设置样式行6 lc rgb alg2_颜色lt 1 pt err1_pt
#算法3线
设置样式行7 lc rgb alg3颜色lt 1点错误5点
设置样式行8 lc rgb alg3颜色lt 1点错误3点
设置样式行9 lc rgb alg3颜色lt 1点错误1点
绘制数据时,只需对Alg使用
ls 4
。Alg为2(5%),
ls 9
。3(1%)等。由于颜色和点类型仅在一个位置定义,因此更容易更改并保持一致

另一个建议是:如果有人试图打印你的情节,用黑白打印时很难区分红色、绿色和蓝色。如果对不同的算法类型使用不同的线型(虚线、虚线等),即使以黑白打印,也会显示这种区别。为此,请对不同的算法使用不同的而不是
lt 1