首页 > 解决方案 > Gnuplot:水平键排序(转置)

问题描述

我有一个有 9 行的情节和一个 3x3 键。我的绘图命令涉及一个循环,因为我需要以特定顺序从各种数据文件中绘图。默认键设置似乎垂直堆叠行标题,如何将其更改为水平排​​序(或转置键)?即当前密钥显示如下:

1 4 7
2 5 8
3 6 9

我想:

1 2 3
4 5 6
7 8 9

在下面的 MWE 中,我宁愿重新排序密钥而不是实际的绘图循环。:

set terminal postscript eps enhanced size 17cm,13.125cm colour 18 "Helvetica"

set output 'MWETransposeKey.eps'

set xrange [0:1]
set xtics 1
set yrange [-1:1.5]
set ytics 1
set key top left box horizontal maxcols 3 width 2 spacing 1.5

# number of curves:
N=9.0
## sine function:
f(x,n)=sin((x-0.5*(n-1)/N)*(2*pi))

plot for [n=1:N] f(x,n) w l title sprintf("Line %d",n)

键顺序垂直堆叠

我已经尝试过 invert 关键字,但是关键变成了:

3 6 9
2 5 8
1 4 7

倒键

标签: keygnuplotlegend

解决方案


修改后的答案:

应该是set key horizontal,但是正如您指出的那样,它的行为方式不符合您的要求。让我们称其为错误或缺少的功能。

解决方法:

虽然很麻烦,但可以使用keyentryplot 命令的功能以您喜欢的任何顺序手动构建密钥。

plot for [n=1:N] f(x,n) w l notitle, \
     for [n in "1 4 7 2 5 8 3 6 9"] keyentry title sprintf("Line %d",int(n))

在此处输入图像描述


推荐阅读