【问题标题】:gnuplot every command with different lines color and legendgnuplot 每个命令都有不同的线条颜色和图例
【发布时间】:2021-08-10 23:39:50
【问题描述】:
假设我有这个示例数据文件
1 2
2 3
3 4
1 5
2 6
3 7
1 8
2 9
3 10
如果我运行这个命令,现在在 gnuplot 中
pl 'test.dat' u 1:2 every :::0::2 w l
它为数据文件中的每个块绘制三行,但无法区分哪一行来自哪个数据块。我希望这三行具有三种不同的颜色和不同的图例标签。除了every 命令,我还能这样做吗?
【问题讨论】:
标签:
plot
gnuplot
gnuplot-iostream
【解决方案1】:
当然,有多种方法可以实现这一目标。如果你坚持在块之间有一个空行并使用every,你可以迭代地绘制:
plot for [i=0:*] 'test.dat' u 1:2 every :::i::i w l lc i
或者,如果你用两个空行分隔你的数据块,你可以使用索引:
1 2
2 3
3 4
1 5
2 6
3 7
1 8
2 9
3 10
plot for [i=0:*] 'test.dat' index i u 1:2 w l lc i
(也允许使用快捷方式i i 而不是index i,但难以阅读)
或者没有迭代,但使用伪列 -2(它为您提供索引号)。请注意,gnuplot 不会在用空线分隔的点之间绘制连续线,因此不需要 every 命令。
plot 'test.dat' u 1:2:-2 w l lc variable
自动生成,不同的标签可以通过以下方式制作:
plot for [i=0:*] 'test.dat' i i u 1:2 w l lc i t sprintf('This is block %d', i)