2014-01-07 1 views
4

예 : here은 gnuplot을 사용하여 채워진 등고선 플롯을 생성했습니다. 의 gnuplot 명령 출력은 :등고선 사이에 일정한 색으로 채워진 등고선 플롯

reset 
f(x,y)=sin(1.3*x)*cos(.9*y)+cos(.8*x)*sin(1.9*y)+cos(y*.2*x) 
set xrange [-5:5] 
set yrange [-5:5] 
set isosample 250, 250 
set table 'test.dat' 
splot f(x,y) 
unset table 

set contour base 
set cntrparam level incremental -3, 0.5, 3 
unset surface 
set table 'cont.dat' 
splot f(x,y) 
unset table 

reset 
set xrange [-5:5] 
set yrange [-5:5] 
unset key 
set palette rgbformulae 33,13,10 
p 'test.dat' with image, 'cont.dat' w l lt -1 lw 1.5 

Filled contour plot generated using gnuplot.

이 방법은 매우 부드러운 가득 윤곽 플롯을 생성한다. 등고선 사이의 색상이 일정하도록이 방법을 수정하려면 어떻게해야합니까? 예를 들어, 나는이 MATLAB 스크립트의 출력과 유사 할 싶습니다

clc; clear all; close all; 

Nx = 250; 
Ny = 250; 
x = linspace(-5,5,Nx); 
y = linspace(-5,5,Ny); 
[X,Y] = meshgrid(x,y); 

f = sin(1.3*X).*cos(.9*Y) + cos(.8*X).*sin(1.9*Y) + cos(Y.*.2.*X); 

levels = -3:0.5:3; 
figure; 
contourf(X,Y,f,levels); 
colorbar; 

Filled contour plot generated using MATLAB.

답변

5

gnuplotset palette 옵션은 maxcolors 설정되어 있습니다. 따라서 귀하의 경우에는 12 행을 추가해야합니다.

set palette maxcolors 12 
+0

좋은 해결책! 채워진 윤곽선은 함께 닫힌 다각형으로 처리되지 않으므로 표면의 샘플링 수를 늘리는 것만으로 충분합니다. – Christoph

+0

@Christoph 네, 그렇지만, 당신은 또한 그다지 분명한 것은 아니지만 기본 maxcolors 설정이 없어도 그 문제가 있습니다. – Bernhard