gnuplot错误:没有足够的列用于变量颜色

gnuplot错误:没有足够的列用于变量颜色,gnuplot,palette,Gnuplot,Palette,我正在执行以下gnuplot脚本: set terminal svg set output "file.svg" set yrange [0:1] set style fill solid set key top left set style fill transparent solid 0.6 border lt -1 set palette model RGB defined (1 "red", 2 "blue") set xtics rotate by -45 plot "file.dat

我正在执行以下gnuplot脚本:

set terminal svg
set output "file.svg"
set yrange [0:1]
set style fill solid
set key top left
set style fill transparent solid 0.6 border lt -1
set palette model RGB defined (1 "red", 2 "blue")
set xtics rotate by -45
plot "file.data" using 3:xticlabels(2):1 title "" with boxes palette
file.data如下所示:

1   name1   0.356877
1   name2   0.643123
2   name3   0.688312
2   name4   0.311688
因此,我希望数据文件中带前导
2
的框为蓝色,前面带
1
的框为红色

当我添加
调色板
关键字并在标题中打印错误消息时,它失败


Gnuplot是v4.6补丁级别4,我在Ubuntu 14.04上运行它。我以前也用这种方式创建过彩色绘图,所以这可能只是我忽略的一个小错误,但我完全没有想法。

您的脚本有两个错误:

格式说明符不正确 根据gnuplot文档(
?命令行中的boxes
),如果向
用boxes
绘图提供了三列输入,则第三列是框的宽度参数。使用可变线条/填充颜色需要添加额外的输入列:

plot "file.data" using 0:3:(1):1 with boxes
对四列的说明:

  • 0
    提供了一个索引:第一个是0,第二个是1等。它们给出了x位置(假设每个框都是单独的)
  • 3
    是您的y数据
  • (1)
    提供方框x宽度的数值
    1
  • 1
    提供您的颜色信息
  • 绘图命令缺少
    lc
    (linecolor)参数 整个plot命令应该如下所示 使用0:3:(1):1标题“”和方框lc调色板打印“file.data”

    还请注意
    请记住,调色板信息已重新调整为介于
    cbrange
    的最小/最大值之间。我的意思是,如果您的数据是二进制的(在本例中为1或2),调色板将正确构造,但是如果您想要更具体的颜色(例如,数据值为1/2/3),并且您以相同的方式设置了三种调色板,那么它可能无法按您预期的方式工作。

    无需使用
    plot“file.data”指定固定的框宽将0:3:1:xtic(2)与方框调色板一起使用
    效果良好。