2014-09-22 3 views
2

previous question의 gnuplot 팔레트, 기본 및 정의

난 아무것도 기본 (pm3d 기본값)의 gnuplot의 컬러 팔레트를 가지고 X에 흰색 가치를 부여하고 싶은> = X 흰색으로하지만 관련된 어떤 일부 rest (< X)는 여전히 기본값으로 배포됩니다.

set cbrange [0:30] 

이제 값이 균등하게 기본 색상으로 0과 30 사이에 배포됩니다

내가 값을 0에서 100 사이에 나는 내가 다음과 같이 0 ~ 30의 값에만 관심이있다, 예를 들어 말 그러나 팔레트 값 30.001 ~ 100은 모두 노란색입니다. 나는

0시 반 균등 30:31

흰색과 실제 플롯의 기본 팔레트로 배포 색상 막대에이 같은 말을 내 컬러 팔레트의 상단에 흰색 블록을 배치 할 ,> 30 값이 흰색으로 표시됩니다.

정의 된 값을 설정할 수 있지만 기본 rgbformula 7,5,15와 정의 된 점 30 = 흰색을 결합 할 수는 없습니다.

의견이 있으십니까?

답변

3

set palette functions으로 함수 기반 팔레트를 정의 할 수 있습니다.

gnuplot> show palette rgbformulae 
     * there are 37 available rgb color mapping formulae: 
     0: 0    1: 0.5    2: 1    
     3: x    4: x^2    5: x^3    
     6: x^4    7: sqrt(x)   8: sqrt(sqrt(x)) 
     9: sin(90x)  10: cos(90x)  11: |x-0.5|   
     12: (2x-1)^2  13: sin(180x)  14: |cos(180x)|  
     15: sin(360x)  16: cos(360x)  17: |sin(360x)| 
     ... 

그래서 당신은 팔레트의 한쪽 끝에서 흰색 제공하는 적색, 녹색 및 청색에 대한 자신의 함수를 정의 할 수 있습니다 :

show palette rgbformulae 입력하면 당신에게 기본 팔레트에 사용되는 함수의 정의 ( 7,5,15)를 보여줍니다

r(x) = sqrt(x) 
g(x) = x**3 
b(x) = (x == 1 ? 1 : sin(2*pi*x)) 
set palette functions r(gray),g(gray),b(gray) 
set isosamples 100 
set pm3d map 
set cbrange [-200:-10] 
set cbtics -200,40 
set cbtics add ('> -10' -10) 
splot -x**2 - y**2 notitle 

4.6.5와 출력은 다음과 같습니다

r(x) = sqrt(x) 
g(x) = x**3 
b(x) = (x == 1 ? 1 : sin(2*pi*x)) 
set palette functions r(gray),g(gray),b(gray) 

데모를 보려면 여기 -10 위의 모든 값은 흰색입니다 전체 예제 스크립트입니다 :

enter image description here

+0

위대한. 나는 조금도 두지 않는다. 파일에서 로딩하는 경우 'r (회색 $ 1)'과 같이 값 대신 '회색'을 전달하는 이유는 무엇입니까? 또한,'b (x)'1은'cbrange'의 최대 값이 맞습니까? 나는 값을'X'로 설정 한 다음 실제 색 막대를'X + 10'으로 설정하여 색상 막대의 맨 위에 실제 흰색 블록이 있도록하기를 바랬습니다. – James

+0

예를 들어, [this]와 같이 음모를 꾸미는 것이 가능할 것으로 기대하고 있습니다. (http://imgur.com/F4giDLf) – James

+0

Ok has it has : 3면 모두를 대체하십시오. (x = 0.9-1 : x ** 3))'및'b (x) = ((x, y) x> = 0.9? 1 : sin (2 * pi * x)) '로 정의된다. 도움을 주셔서 감사합니다 – James