GNUPLOT 4.6:自定义等高线

3

关于轮廓图的另一个问题。我正在使用

    G N U P L O T
    Version 4.6 patchlevel 6    last modified September 2014
    Build System: Linux x86_64

我正在尝试绘制一个彩色地图,上面覆盖着等高线地图。我的终端是

    set terminal pngcairo enhanced size 1440,900 crop font "Palatino,27"

我想绘制这个图表。
    set contour surface
    set cntrparam level discrete 0.3,0.067
    set style line 2 lt 1 lc rgb "black" lw 3
    set style line 3 lt 3 lc rgb "black" lw 1
    set style increment user
    splot 'file1' binary w pm3d nocontour,\
          'file2'  binary w l  nosurface

所以轮廓被设置为绘制两条等值线,都是黑色的,一条虚线,一条实线,一条粗的,一条细的。它绘制了两条等厚度的实线。
我尝试了在Google上找到的许多解决方案。
1)我用“set linetype...”替换了“set style line ...”,并删除了“set style increment user”行。这样就可以将线变成黑色、实线、等厚度。我可以改变颜色。
2)我尝试添加“set termoption dashed”行。什么也没有发生,虚线从未出现。
我错在哪里?
非常感谢。

你需要使用 "set linetype","set termopt dashed" 命令,并使用所需虚线的线型作为模板。 - Karl
@KarlRatzsch 但是这对于绘制轮廓图并不起作用。 - Christoph
@KarlRatzsch,这正是我尝试并在第2点中提到的。它不起作用。 - marco
没有 "dashed" 的选项,gp46 只有一种非常细的虚线类型,即类型 "0"。相反,gp50 有一个新的 "dashtype" 选项。但是,在等高线上虚线效果不正常,这是一个错误。在三维图下面的基平面上,你不能得到正确的虚线,在表面上,Christoph 下面概述的过程可以正常工作。 - Karl
1个回答

1

实际上,目前您无法为不同的轮廓使用任意线型或样式。更改颜色可以,也可以设置一种虚线类型(然后使用第一个轮廓样式的虚线类型),但不能混合虚线和实线并更改线宽。

在这种情况下,您必须像在第一个问题中那样将轮廓写入文件中 :)

稍后可以使用index关键字访问不同的轮廓级别。但请注意,在第一个数据集中,您将拥有完整的表面,轮廓从index 1开始:

set termoption dashed
set contour surface
set cntrparam level discrete 0.3,0.067
set style line 2 lt 1 lc rgb "black" lw 3
set style line 3 lt 3 lc rgb "black" lw 1

set table 'temp.dat'
splot 'file2' binary 
unset table
unset contour

splot 'file1' binary w pm3d nocontour,\
      for [i=1:2] 'temp.dat' index i with lines ls (i+1)

1
如果你改变线型而不是样式,它就能正常工作。轮廓的问题在于虚线被打断了,详见http://sourceforge.net/p/gnuplot/bugs/1612/。 - Karl
@KarlRatzsch 你不能为不同的等高线级别使用不同的虚线模式或线宽。 - Christoph
你是对的,“termopt dashed”会在gp46中生成虚线轮廓,但实际上无法更改虚线样式。如果没有明确设置,线宽(以及v50中的虚线)将从线型1中获取。 - Karl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接