【问题标题】:Gnuplot with surface plot and points带有曲面图和点的 Gnuplot
【发布时间】:2013-07-26 12:51:49
【问题描述】:

我尝试按照其他帖子中的建议进行操作。但是这些点没有打印出来。我的错误在哪里:

set decimalsign locale
set datafile separator ";"

set table 'point_data.dat'
    unset dgrid3d
    splot './points.csv' u 1:2:3
unset table

#set pm3d implicit at s
#set pm3d interpolate 1,1 flush begin noftriangles hidden3d 100 corners2color mean
set dgrid3d 50,50,50

set output 'field.pdf'

splot './point_data.dat' u 1:2:3 w points pt 7, \
      './field.csv' u 2:1:3 with lines lt 5 lc rgb "#000000"

set output
exit

感谢您的帮助

【问题讨论】:

    标签: 3d gnuplot points geometry-surface


    【解决方案1】:

    我认为您的问题是datafile separator
    如果您查看point_data.dat文件,我相信它会在列中列出您的点,但不会用; 分隔。因此,当您尝试同时绘制point_data.datfield.csv(我假设它们也被; 分隔)时,很可能不会绘制这些点,因为gnuplot 无法解释point_data.dat 文件(它使用默认分隔符" ")。
    有两种方法可以解决这个问题:

    1. 不要使用set datafile separator。相反,在绘图时使用awk 删除;

      set decimalsign locale
      set table 'point_data.dat'
      unset dgrid3d
      
      splot "< awk 'BEGIN {FS=\";\"} {print $1, $2, $3}' points.csv" u 1:2:3
      
      unset table
      set dgrid3d 50,50,50
      
      splot "point_data.dat" u 1:2:3 w points pt 7, \
            "< awk 'BEGIN {FS=\";\"} {print $1, $2, $3}' field.csv" u 2:1:3 with lines lt 5 lc rgb "#000000"
      

      需要注意的几点:

      • awk-command 中,不要忘记使用带引号的反斜杠:\",否则会弄乱命令(并导致错误)。
      • 考虑取消not 以抑制图例条目或使用定义的标题(例如title "points"),否则整个awk-command 将被打印为标题。
    2. 您可以使用multiplot-命令(并跳过set table):

      set datafile separator ";"
      
      set xrange [xmin:xmax]
      set yrange [ymin:ymax]
      set zrange [zmin:zmax]
      
      set multiplot
      splot "points.csv" u 1:2:3 w points pt 7 not
      set dgrid3d 50,50,50
      splot "field.csv" u 2:1:3 with lines lt 5 lc rgb "#000000" not
      unset dgrid3d
      unset multiplot
      

      需要注意的几点:

      • 使用not 打印不带图例,否则它们会重叠。如果你需要一个图例,你不能像这样使用multiplot,因为它们会重叠。
      • 在绘图之前设置xrangeyrangezrange,否则轴范围可能不一致。 (请务必将 xminetc 替换为您数据范围内的实际值)。

    【讨论】:

    • 我认为第一个选项是最好的,因为为此使用multiplot 还需要在第二个plot 之前取消设置很多东西(边框、抽动、标签)。否则,在某些终端中,绘图可能看起来很难看,因为两次绘制会导致不同的抗锯齿效果。如果您删除标签和抽动,您需要使用例如修复边距set lmargin at screen 0.2.
    猜你喜欢
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多