2012-05-15 3 views
1

3d에서 같은 그래프에 두 개의 다른 데이터 세트를 플롯하려고합니다. 이것은 쉽게 불행하게도 나는 내가 그리드를 설정 dgrid3d를 사용하여 매끄럽게 foo 싶습니다같은 그래프에서 dgrid3d를 설정/해제합니다.

splot 'foo.dat','bar.dat' 

수행 할 수 있습니다. 동시에 나는 bar에 도트를 표시하고 싶습니다 (foo은 실제로는 bar의 보간이며 매듭을 그립니다). 따라서 나는 그것이 splot 명령에 dgrid3d 설정을 해제하거나 다른 트릭을 사용하여이 문제를 해결할 수있다 ... 불행하게도이 두 데이터 세트에 dgrid3d을 적용

set dgrid3d 20,20 
splot 'foo.dat' w l, 'bar.dat' w points 

를 사용?

답변

4

다른 트릭이 필요합니다. 그 비결은 set table

set terminal push   #save terminal info 
set terminal unknown  #null terminal 
set table 'foo_gridded.dat' #temporary file to store the data 
set dgrid3d 20,20 
splot 'foo.dat' 
unset table     #close temporary file 
unset dgrid3d 
set terminal pop   #restore terminal info 
splot 'foo_gridded.dat' w l, 'bar.dat' w points #make the plot we want 
!rm foo_gridded.dat   #Optional, remove temporary file (Only works on Unix-like systems) 

세트 테이블 기본적으로 "플롯"다시 읽을의 gnuplot 포맷의 텍스트 파일에 데이터입니다 그건 매우 유용 -. 결국, 나는 그것이 목적을위한 생각 gnuplot 개발자가 줄거리 유형 충돌에 대해 걱정할 필요가 없도록 위와 같은 모든 종류의 (못생긴) 해킹을 만듭니다. (나는 이것을 사용하여 pm3d 맵 위에 윤곽선을 그려 낸다.)

+0

문제가 해결되었습니다. 감사 ! – vanna

+0

@vanna : 문제 없습니다. 나는 이것이 당신의 마음의 뒤에서 유지하는 것이 얼마나 유용한 트릭인지 충분히 강조 할 수 없다. (gnuplot에 답한 게시물을 살펴보면 아마 5 개 중 1 개가이 트릭의 변형 일 것입니다.) – mgilson

관련 문제