【问题标题】:Perl Gnuplot - Redefine 3d plot colour palettePerl Gnuplot - 重新定义 3d 绘图调色板
【发布时间】:2015-02-09 16:08:30
【问题描述】:

我在 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 中执行此操作。

谢谢。

【问题讨论】:

    标签: perl colors plot gnuplot palette


    【解决方案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 脚本中保留一个反斜杠,这允许调色板定义跨越几行。

    【讨论】:

      猜你喜欢
      • 2014-11-15
      • 1970-01-01
      • 2016-08-10
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-10
      • 2020-11-04
      • 2019-07-03
      相关资源
      最近更新 更多