2014-11-17 134 views
2

我是gnuplot的新手。我試圖在x-y平面上疊加輪廓圖和一些數據點。gnuplot:在x-y平面上疊加輪廓圖和數據

數據爲我的等值線給出(surface1.txt)爲單點here
給出的數據是(points1.txthere

我試圖運行此腳本:

set multiplot 
# plot the contour from the surface1.txt 
unset key 
set dgrid3d 
unset surface 
set contour base 
# these values need to be set (requirement) 
set cntrparam level incremental 0.16, 0.259, 4.47 
set view 0,0 
unset ztics 
splot "surface1.txt" with lines 
# plot the points on the x-y plane 
unset xtics 
unset ytics 
splot "points1.txt" 
unset multiplot 

和我得到此輸出:

enter image description here

正如你所看到的,單點,我試圖把在xy平面上也當屬輪廓,我需要做的是:從

  1. 顯示點「points1.txt」單點(不是輪廓)
  2. 情節是放大,我需要一個全屏圖像。
  3. 將y軸刻度從右向左移動。
  4. 刪除所有顏色。我需要一張灰度圖像。

請幫忙。

編輯: 我自己也嘗試這種方式 -

set contour base 
set cntrparam bspline 
set cntrparam level incremental 0.16, 0.259, 4.47 
set view map 
set dgrid3d 
unset key 
splot 'surface1.txt' nosurface with lines, \ 
    'points1.txt' nocontour 

和我得到這個情節 -

enter image description here

回答

2

有幾件事情你一定認爲:

  1. set dgrid3d內插您的數據並被認爲是用於非網格數據。沒有選項nodgrid3d,它允許您僅將它用於一個情節部分。這就是你在第二次嘗試時看到的:點的數據被插值並生成一個10x10的網格。

    但是,您不需要使用它,因爲您有網格數據,但在數據文件中缺少一些空行。只需插入一個空行,當x值變化,比如:

    ... 
    0.0 0.7999999999999999 2.0477812692428836 
    0.0 0.8999999999999999 2.3096674656635523 
    0.0 0.9999999999999999 2.5772908911794614 
    
    0.1 0.0 0.8254201558219569 
    0.1 0.1 1.0350909705482707 
    0.1 0.2 1.2504990143698247 
    ... 
    
  2. 中繪製點時使用nosurface選項的輪廓,和nocontours

一個可能的腳本可以是:

set contour base 
set cntrparam level incremental 0.16, 0.259, 4.47 
unset key 
set view map 
set for [i=1:20] linetype i lc rgb 'black' 

set terminal pngcairo dashed size 600,400 
set output 'contour-with-points.png' 
splot 'surface1.txt' with lines nosurface, 'points1.txt' with points nocontour pt 7 

enter image description here

我用pngcairo終端只在這個例子的結果,爲您的文檔,你應該使用矢量格式,如由pdfcairo,postscript,epslatex或類似產品製作。

+0

This works !,謝謝。但是有沒有其他辦法可以設置[i = 1:20] linetype i lc rgb'black''?因爲我不確定是否會有20行。 – ramgorur

+1

你可以使用'set linetype 1 lc rgb'black';在版本4.6.5中設置線型循環1'。 – Christoph