2016-10-22 2 views
0

내가 GNUPLOT에서 다음 코드와 함께 splot 내에서 점선을 플롯하려고 4.6 패치 레벨 4 :는 GNUPLOT : splot 점선의 변경 밀도

set terminal "pdfcairo" enhanced dashed size 15,10 
set pm3d map 
set output "test.pdf" 
splot 'map.dat' using 1:($2/1000):3 notitle, \ 
    'line1.dat' using 1:($2/1000):1 notitle with lines ls 2, \ 
    'line2.dat' using 1:($2/1000):1 notitle with lines ls 2 
unset output 

열지도 작품과 너무 line1.dat을한다 . 그러나 두 번째 줄은 대체로 단색으로 보입니다. 차이점은 line1.dat에는 70 개의 항목이 있고 line2.dat에는 900이 있습니다. 두 번째 줄에는 두 점 사이에 점프가 있으며 거기에는 점이 찍 힙니다.

전체 선이 점선으로 표시되도록 점 밀도를 어떻게 변경할 수 있는지 알고있는 사람이 있습니까? 원본 데이터 파일을 변경하는 것은 옵션이 아닙니다.

noes

, 도와 주셔서 감사

편집 : 내가 찾은

한 가지 해결 방법은

splot 'line2.dat' every ... 

하지만 그 데이터에 점프에서 unconvenient 얻을 수 있습니다.

답변

1

명령 다음 (s)plot 'line.dat' with lines 첫번째 플롯 데이터 포인트와는 각각 이는 linestyle과 선을 사용하여 데이터 포인트를 연결합니다. 데이터 포인트가 서로 너무 가깝다면 파선 스타일을 사용할 때 약간의 간격이 생길 곳이 없습니다.

점선/점선을 표시하려면 함수로 점을 대체하거나 점의 수를 줄이십시오.

  • 점선 대신 점선을 사용해보십시오. 린 스타일과 라인 컬러는 독립적으로 설정할 수 있습니다 : splot 'line.dat' with lines ls 0 lc 2. 이 접근법에서는 900 점이 너무 많을 수 있습니다.

  • 기능을 적용해도 작동하지만 적절한 기능을 찾기가 너무 어려울 수 있습니다.

  • every 옵션은 포인트 수를 줄입니다.

  • 포인트 수를 줄이는 또 다른 방법은 smooth 옵션을 사용하여 포인트를 보간하는 것입니다. 이 임시 파일을 필요로하며, 다음과 같이 작동한다 : 인

    # [prepare plot] 
    set samples 100 
    set table "line2.dat.tmp" 
    plot 'line2.dat' using 1:($2/1000) smooth mcsplines with lines ls 2 
    unset table 
    
    set terminal "pdfcairo" enhanced dashed size 15,10 
    set pm3d map 
    set output "test.pdf" 
    
    # [plot] 
    splot 'map.dat' using 1:($2/1000):3 notitle, \ 
        'line1.dat' using 1:($2/1000):1 notitle with lines ls 2, \ 
        'line2.dat.tmp' using 1:2:1 notitle with lines ls 2 
    
    unset output 
    

를 단면 "line2.dat.tmp가"line2.dat 보간 데이터 포인트를 포함하는 생성되는 임시 파일 [플롯을 제조]. 적절한 수의 점수를 얻으려면 set samples와해야합니다. 이 예에서 우리는 거리가 다른 900 점이 아닌 100 점의 등거리 점을 가지고 있습니다. 옵션 smooth mcsplines은 원래 데이터 포인트의 단조와 변곡점을 보존합니다 (gnuplot 셸에서 help smooth mcsplines 참조).

[plot] 섹션에서 원래의 "lines2.dat"는 보간 된 데이터로 대체됩니다.

이 방법은 원래 데이터가 충분히 부드러워서 900 포인트를 100 포인트로 대체해도 중요한 정보를 건너 뛰지 않는 경우에 효과적입니다. 어쩌면 "lines2.dat"및 "lines2.dat.tmp"를 단일 다이어그램에 플롯하여 비교할 수 있습니다.

+0

도움 주셔서 감사합니다. 데이터의 점프를 위해 나는 세 개의 "every"을 사용했습니다 (첫 번째 부분은 하나, 올바르게 점프를 시작한 부분, 두 번째 부분을위한 부분). – noes

0

사용과 같이 every 핵심 단어 :

'line2.dat' every 20 using 1:($2/1000):1 notitle with lines ls 2