Gnuplot 平滑命令不支持可变颜色?

Gnuplot 平滑命令不支持可变颜色?,gnuplot,Gnuplot,我正在尝试使用smooth csplines命令在GNUplot中绘制一个图。数据文件可以有许多不同的部分来绘制(不是常数),我想使用lc变量选项以不同的颜色来区分它们。不支持lc变量选项是我错了吗?正确,不能在单个绘图命令中混合使用平滑和lc调色板。您可以使用set table将平滑后的数据写入中间文件,然后使用lc调色板绘制此数据 考虑示例文件test.txt: 1 3 2 5 4 6 现在用以下方法绘制此图: set table 'tmp.txt' plot 'test.txt' usi

我正在尝试使用smooth csplines命令在GNUplot中绘制一个图。数据文件可以有许多不同的部分来绘制(不是常数),我想使用lc变量选项以不同的颜色来区分它们。不支持lc变量选项是我错了吗?

正确,不能在单个绘图命令中混合使用
平滑
lc调色板
。您可以使用
set table
将平滑后的数据写入中间文件,然后使用lc调色板绘制此数据

考虑示例文件
test.txt

1
3
2
5
4
6
现在用以下方法绘制此图:

set table 'tmp.txt'
plot 'test.txt' using 0:1 smooth cspline
unset table
然后使用
lc rgb变量
或类似工具绘制文件
tmp.txt

rgb(r,g,b) = 65536 * int(r) + 256 * int(g) + int(b)
plot 'test.txt' using 0:1 pt 7 t 'original', \
     'tmp.txt' using 1:2:($2 < 4.2 ? rgb(255,0,0) : rgb(0,255,0)) with lines lc rgb var  t 'smoothed'
rgb(r,g,b)=65536*int(r)+256*int(g)+int(b) 使用0:1 pt 7 t“原始”绘制“test.txt”\ “tmp.txt”使用1:2:($2<4.2?rgb(255,0,0):rgb(0255,0))和行lc rgb var t“平滑” 结果见4.6.4:

请注意,这不允许您使用原始数据的附加列中包含的某些标准进行着色(例如,在
test.txt
的第三列中)。这需要更多的摆弄