我是gnuplot的新手。我试图在x-y平面上叠加等高线图和一些数据点。
给出了我的轮廓数据(surface1.txt
)here
给出了单个点的数据(points1.txt
)here
我正在尝试运行此脚本:
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
我得到了这个输出:
正如你所看到的,我试图在x-y平面上放置的单个点也是轮廓,我需要做的是:
请帮忙。
修改 我也尝试过这种方式 -
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
我得到了这个情节 -
答案 0 :(得分:2)
您必须考虑以下几点:
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
...
使用轮廓的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
结果为
我仅在此示例中使用pngcairo
终端,对于您的文档,您应该使用矢量格式,例如pdfcairo,postscript,epslatex或类似的格式。