Gnuplot 颜色和标记的单独键(图例)

Gnuplot 颜色和标记的单独键(图例),gnuplot,Gnuplot,我有一个带有几种类型对象的绘图(每种对象都从单独的文件中读取)。我正在为它们绘制相同的几个函数,都在同一个图形上(相同的X轴) 我为每个对象明确地设置了标记(pt),并设置了颜色(lc),因此相同的对象具有相同的标记,但相同的函数具有相同的颜色。例如,我们有两个文件,每个对象一个(|只是在这里分隔文件): 让我们调用左边的文件A,右边的文件B。每个文件中的第1列是x轴,第2列是使用1:2,第3列是使用1:3。因此,在交互式会话中使用上述文件: gnuplot> plot "A" using

我有一个带有几种类型对象的绘图(每种对象都从单独的文件中读取)。我正在为它们绘制相同的几个函数,都在同一个图形上(相同的X轴)

我为每个对象明确地设置了标记(
pt
),并设置了颜色(
lc
),因此相同的对象具有相同的标记,但相同的函数具有相同的颜色。例如,我们有两个文件,每个对象一个(
|
只是在这里分隔文件):

让我们调用左边的文件A,右边的文件B。每个文件中的第1列是
x
轴,第2列是
使用1:2
,第3列是
使用1:3
。因此,在交互式会话中使用上述文件:

gnuplot> plot "A" using 1:2 with lp pt 1 lc 'black'
gnuplot> replot "A" using 1:3 with lp pt 1 lc 'red'
gnuplot> replot "B" using 1:2 with lp pt 2 lc 'black'
gnuplot> replot "B" using 1:3 with lp pt 2 lc 'red'
我们得到:

是否可以将键分开,使A/B显示在各自的标记旁边,并且函数名(“使用…”)显示在具有适当颜色的行(或任何内容)旁边

现在,通过省略标题(
notitle
在plot命令中),我可以得到一个或另一个,尽管我必须选择一些统一的任意标记/颜色(取决于我选择设置为关键点的内容)。我可以:

  • 不知怎么弄到两把钥匙了最好将缺少的属性(颜色或标记)设置为不在绘图中的内容
  • 如果没有,我可以定制一个手动图例吗

  • 我不完全确定您想要实现什么,但是关于密钥的拆分,我不认为Gnuplot有一些“开箱即用”的特性。但是,您可以(ab)使用
    multiplot
    来实现此效果。其基本思想是生成两个重叠图-一个带有点的
    ,一个带有线的
    ,并独立定位关键点:

    set terminal pngcairo rounded font ",16"
    set output 'fig.png'
    
    $A << EOD
    0   0   0
    1   1   2
    EOD
    $B << EOD
    0   1   1
    1   1   2
    EOD
    
    set multiplot
    
    set xtics out nomirror
    set ytics out nomirror
    
    eps = 0.1
    set lmargin at screen eps
    set rmargin at screen 1 - eps/2
    set bmargin at screen eps
    set tmargin at screen 1 - eps/2
    
    #common key settings
    set key left top Left reverse spacing 1.5
    
    set key at screen 0.1,screen 1-eps
    plot \
        $A u 1:2 with p ps 1.5 pt 1 lc 'black' t 'A', \
        $A u 1:3 with p ps 1.5 pt 1 lc 'red' t 'A' , \
        $B u 1:2 with p ps 1.5 pt 2 lc 'black' t 'B', \
        $B u 1:3 with p ps 1.5 pt 2 lc 'red' t 'B'
    
    unset border; unset xtics; unset ytics
    
    set key at screen 0.3,screen 1-eps
    plot \
        $A u 1:2 with l lc 'black' t 'using 1:2', \
        $A u 1:3 with l lc 'red' t 'using 1:3', \
        $B u 1:2 with l lc 'black' t '', \
        $B u 1:3 with l lc 'red' t ''
    
    设置端子pngcairo圆形字体”,16“
    设置输出“fig.png”
    
    $A我已经在做那个假阴谋黑客,但多阴谋使它完美(分离钥匙)。只有一个烦恼-我不能在
    qt
    终端中玩游戏并导出到
    pdf
    ,因为一旦你使用multiplot,你就不能更改终端,但这已经足够了。我也使用了很多的
    replot
    ,但是在这个方法中你必须使用
    plot
    。至于我要实现的,我有5个不同的对象类,在同一个plot上有4个函数。我希望查看器能够分别跟踪对象和函数。有更多的数据点,因此视觉效果很重要。
    set terminal pngcairo rounded font ",16"
    set output 'fig.png'
    
    $A << EOD
    0   0   0
    1   1   2
    EOD
    $B << EOD
    0   1   1
    1   1   2
    EOD
    
    set multiplot
    
    set xtics out nomirror
    set ytics out nomirror
    
    eps = 0.1
    set lmargin at screen eps
    set rmargin at screen 1 - eps/2
    set bmargin at screen eps
    set tmargin at screen 1 - eps/2
    
    #common key settings
    set key left top Left reverse spacing 1.5
    
    set key at screen 0.1,screen 1-eps
    plot \
        $A u 1:2 with p ps 1.5 pt 1 lc 'black' t 'A', \
        $A u 1:3 with p ps 1.5 pt 1 lc 'red' t 'A' , \
        $B u 1:2 with p ps 1.5 pt 2 lc 'black' t 'B', \
        $B u 1:3 with p ps 1.5 pt 2 lc 'red' t 'B'
    
    unset border; unset xtics; unset ytics
    
    set key at screen 0.3,screen 1-eps
    plot \
        $A u 1:2 with l lc 'black' t 'using 1:2', \
        $A u 1:3 with l lc 'red' t 'using 1:3', \
        $B u 1:2 with l lc 'black' t '', \
        $B u 1:3 with l lc 'red' t ''