1

我需要创建一个带有多个子图的图形,而在每个子图中我需要绘制多条线。每条线必须有不同的颜色。(如果每 30-40 行颜色被迭代一次就可以了)。

例如:(我想要 8 个子图)

set multiplot layout 2, 4

对于第一个子图,我可以执行以下操作

plot for [i=2:101] 'mydata.txt' u 1:i w line notitle lw 2

这将在第一个子图中绘制 100 条线

plot for [i=1022:201] 'mydata.txt' u 1:i w line notitle lw 2

这在第二个面板中添加了另一组线等。

这个解决方案的问题是,子图中的每条单独的线不仅有不同的颜色,而且有不同的线型,有些是实线,有些是虚线,每个都有不同的虚线图案等。 有没有办法使用独特的线型例如,所有连续的线条并有不同的颜色?

在过去,我发现了以下解决方法,它适用于单个情节

rgb(r,g,b) = 65536 * int(r) + 256 * int(g) + int(b)
set multiplot

do for [i=2:201] { 
   rr = 255*rand(0)
   gg = 255*rand(0)
   bb = 255*rand(0)
   plot 'moredata.inp' u 1:i:(rgb(rr,gg,bb)) w line notitle lt 1 lc rgb variable lw 2
}

但是我不能用 do 循环替换“[i=2:101] 的图”,因为结果是每个子图一行。

有任何想法吗?

谢谢

4

1 回答 1

2

要仅使用实线,请使用

set termoption solid

为了迭代线条颜色,您可以使用lc variable(不带rgb!)。在这种情况下,最后一列用作linetype索引。如果您想要其他颜色的线型,您可以使用set linetype .... 如果使用set style increment user,索引指的是linestyles

或者您可以使用lc palette并定义适当的调色板,例如Gnuplot 在 rowstack histograms 中重复颜色。我认为这可能是最好的选择,因为你需要很多颜色:

set palette model HSV defined ( 0 0 1 1, 1 1 1 1 ) # rainbow palette
plot for [i=2:101] 'mydata.txt' u 1:i lc palette frac (i/101.0) w line notitle
于 2013-09-12T18:27:47.673 回答