Perl Gnuplot - 重新定义3d绘图调色板

时间:2014-12-11 08:30:08

标签: perl colors plot gnuplot palette

我在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中做到这一点。

感谢。

1 个答案:

答案 0 :(得分:1)

未明确处理的选项需要一个字符串并简单地转换为set语句。

http://search.cpan.org/~kwmak/Chart-Gnuplot-0.21/lib/Chart/Gnuplot.pm#Chart_Options_Not_Mentioned_Above为例说明表达式

$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脚本中保留一个反斜杠是必要的,它允许调色板定义超过几行。