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

时间:2014-07-28 18:39:27

标签: 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.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's的框为蓝色,前面带有1的框为红色。

当我添加palette关键字并在标题中打印错误消息时失败。

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

1 个答案:

答案 0 :(得分:2)

您的脚本有两个错误:

格式说明符不正确

根据gnuplot文档(命令行中为? boxes),如果向plot with boxes提供了三列输入,则第三列是框的宽度参数。使用可变线/填充颜色需要添加额外的输入列:

plot "file.data" using 0:3:(1):1 with boxes

对四栏的解释:

  1. 0提供索引:第一个是0,第二个是1等。这些给出x位置(假设每个框都是个体)。
  2. 3是您的y数据。
  3. (1)为您的框的x宽度提供数值1
  4. 1提供您的颜色信息。
  5. 缺少lc(linecolor)参数来绘制命令

    你的整个情节命令应该是这样的     使用0:3绘制“file.data”:( 1):带有方框lc调色板的标题“”

    还要注意

    请记住,调色板信息会重新调整为介于cbrange的最小/最大值之间。我的意思是,如果你的数据是二进制的(在这种情况下为1或2),调色板将被正确构造,但如果你想要更多的特定颜色(例如数据值1/2/3)并设置三色调色板的方式可能与预期的方式不同。