2016-12-14 88 views
0

我有4D數據X,Y,Z加上一個字段。我想做一個限制在一個球體中的四維情節。我已經使用splot w pm3d在我的字段索引的球體上有顏色條,但是如果我可以添加三維輪廓線,我認爲它會更具可讀性。gnuplot中的4D輪廓圖

我想在http://www.originlab.com/index.aspx?go=Products/Origin/Graphing

類似的「函數圖」(蛋白質方向)最後一個例子是它甚至有可能在gnuplot的?如果是這樣,該怎麼辦?

+0

Gnuplot無法即開即用。無論如何,在繪製圖表之前,您需要使用單獨的程序來準備數據。但我無法告訴你如何... – Christoph

回答

1

Gnuplot無法生成4d輪廓圖。

但是,如果我理解正確的話,你有一個特殊的情況下,你真的沒有4D數據。 z座標依賴於x和y,使得該點位於球體上。也許這可以用來獲得輪廓。

我假定數據文件包含了完整的球數據點,設置圓的圓圈從底部到球體的頂部,在一個單獨的塊中的每個圓圈。

我已經試過這樣:從球體的下半部分點

  • 獨立的上半部上的點,我們需要這種分離爲Z的跡象。
  • 繪製兩個數據文件contour_l.dat和contour_u.dat中兩半的輪廓。這將只繪製x和y座標。
  • 將原始數據文件和兩個輪廓數據文件合併到一個圖中。畢達哥拉斯可以幫助重建輪廓數據文件的z座標。

這是腳本:

set pm3d depthorder interpolate 5,5 
set hidden3d front 

unset surface 
set contour surface 

set zrange [0:1.1] 
set table "contour_u.dat" 
splot "sh.dat" using 1:2:4 w l 
unset table 

set zrange [-1.1:0] 
set table "contour_l.dat" 
splot "sh.dat" using 1:2:4 w l 
unset table 

set surface 
unset contour 

set xrange [-1.1:1.1] 
set yrange [-1.1:1.1] 
set zrange [-1.1:1.1] 
set xyplane relative 0.0 

set terminal pngcairo size 640,640 
set output "c.png" 

unset key 

splot "sh.dat" using 1:2:3:4 w pm3d, \ 
     "contour_u.dat" using 1:2:(sqrt(1.0-($1*$1+$2*$2))):3 w l lc rgb "black",\ 
     "contour_l.dat" using 1:2:(-sqrt(1.0-($1*$1+$2*$2))):3 w l lc rgb "black" 

你沒有發佈數據,所以我採取了球諧之一。隨着gnuplot的4.6,我得到以下結果:

sphere with pm3d and contour lines

正如你所看到的,它仍然是不完美的。應該調查x = 0處的輪廓,如果我刪除了"sh.dat" w pm3d一行,則圖像變得非常奇怪。

但至少這種方法可能是一個起點,一個可以嘗試手動與輪廓線數據文件播放。