我在Perl中使用Chart :: Gnuplot并且正在制作3D图(plot3d),它工作正常。我试图更改默认调色板,我知道它完成了"设置调色板"函数,但我正在努力在Perl中找到等效的命令。我想为特定值定义特定颜色,这将类似于下面的代码,但它会返回错误。
my $chart = Chart::Gnuplot->new(
... ,
palette => {defined => ('0 "#000090",
1 "#000fff",
2 "#0090ff",
3 "#0fffee",
4 "#90ff70",
5 "#ffee00",
6 "#ff7000",
7 "#ee0000",
8 "#7f0000"')},
... ,
);
还应该有一个替代命令来定义默认调色板,例如" rainbow"或者" heat1"等,但我也不知道如何在Perl中做到这一点。
感谢。
答案 0 :(得分:1)
未明确处理的选项需要一个字符串并简单地转换为set语句。
$chart = Chart::Gnuplot->new(
...
foo => "FOO",
);
生成gnuplot语句
set foo FOO
因此,您的调色板定义必须
my $chart = Chart::Gnuplot->new(
...,
palette => 'defined (0 "#000090", \\
1 "#000fff", \\
2 "#0090ff", \\
3 "#0fffee", \\
4 "#90ff70", \\
5 "#ffee00", \\
6 "#ff7000", \\
7 "#ee0000", \\
8 "#7f0000")',
);
在这种情况下,\\
在gnuplot脚本中保留一个反斜杠是必要的,它允许调色板定义超过几行。