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