我有一个包含几种类型对象的图(每个对象都从一个单独的文件中读取)。我正在为所有这些函数绘制相同的几个函数,所有函数都在同一个图形上(相同的X轴)。
我为每个标记(pt
)明确设置标记(lc
),因此同一个对象具有相同的标记,但相同的函数具有相同的颜色。作为一个例子,我们有2个文件,每个对象一个(|
只是在这里分开文件):
0 0 0 | 0 1 1
1 1 2 | 1 1 2
让我们调用左侧文件 A ,右侧 B 。每个文件中的第1列是x
轴,第2列是using 1:2
,第3列是using 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出现在各自的标记旁边,并且函数名称(“using ...”)出现在具有适当颜色的行(或任何东西)旁边?< / p>
现在通过省略标题(notitle
在情节命令中)我可以得到一个或另一个,但我必须选择一些统一的任意标记/颜色(取决于我选择设置为关键字) )。我可以:
答案 0 :(得分:2)
我不完全确定你想要实现什么,但是关于分割键,我不认为Gnuplot有一些“开箱即用”功能。但是,您可以(ab)使用multiplot
来实现此效果。这个想法基本上是生成两个重叠的图 - 一个with points
和一个with lines
- 并且可以独立定位键:
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 ''