2014-12-11 3 views
2

Perl에서 Chart :: Gnuplot을 사용하고 있으며 3D 플롯 (plot3d)을 작성 중입니다. 나는 기본 컬러 팔레트를 바꾸려고 노력하고 있는데, "팔레트 설정"기능을 사용했지만 Perl에서 해당 명령을 찾기 위해 고심하고 있습니다. 특정 값에 대한 특정 색을 정의하고 싶습니다. 아래 코드와 비슷하지만 오류를 반환합니다.Perl Gnuplot - 3D 플롯 색상 표 재정의

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"')}, 
    ... , 
); 

는 또한 "무지개"또는 "등 heat1"와 같은 기본 팔레트를 정의하는 또 다른 명령이 있어야하지만, 나는 또한 펄에서이 작업을 수행하는 방법을 모르겠어요.

감사합니다.

답변

1

명시 적으로 처리되지 않는 옵션은 문자열을 필요로하며 단순히 설정 문으로 변환됩니다.

따라서, 팔레트 정의

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 문

set foo FOO 

를 생성 말한다 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 스크립트에서 하나의 백 슬래시를 사용하면 팔레트 정의를 여러 줄로 넘길 수 있습니다.

+0

훌륭한 작품입니다. 감사! –