我有4D数据X,Y,Z加上一个字段。我想做一个局限于球体的4d图。我已经使用splot w pm3d
在我的字段索引的球体上设置了颜色条,但我认为如果我可以添加3d轮廓线,它会更具可读性。
我想要像http://www.originlab.com/index.aspx?go=Products/Origin/Graphing
那样的“功能图”(蛋白质定位)的最后一个例子甚至可以在gnuplot中使用吗?如果是的话,该怎么做?
答案 0 :(得分:1)
Gnuplot无法生成4d等高线图。
但是,如果我理解正确,你有一个特例,你真的没有4d数据。 z坐标取决于x和y,使得该点位于球体上。也许这可以用来获得轮廓。
我假设数据文件包含完整球体的数据点,从球体的底部到顶部按圆圈排列,每个圆圈在一个单独的块中。
我试过这个:
这是剧本:
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,我得到以下结果:
正如您所看到的,它仍然不完美。应调查x = 0处的轮廓,如果我删除"sh.dat" w pm3d
线,则图像变得非常奇怪。
但至少这种方法可能是一个起点,可以尝试手动玩轮廓线数据文件。