【问题标题】:interpolation artifacts in gnuplotgnuplot 中的插值伪影
【发布时间】:2020-07-06 09:01:50
【问题描述】:

我目前正在为我的学位写一篇论文,但我在尝试使用 Gnuplot 绘制 3 个图表时遇到问题。

我得到了一些如下所示的数据点:

...
100.000000   0.120000   2.000000   0.052724 6682.801488 
100.000000   0.130000   2.000000   0.055570 6805.632674 
100.000000   0.140000   2.000000   0.058270 6912.462994 
100.000000   0.150000   2.000000   0.060815 7006.219537 
100.000000   0.160000   2.000000   0.063252 7098.284918 
100.000000   0.170000   2.000000   0.065541 7621.135706 
100.000000   0.180000   2.000000   0.067744 8383.880473 
100.000000   0.190000   2.000000   0.069822 9030.334374 
100.000000   0.200000   2.000000   0.071812 9574.679479 
100.000000   0.210000   2.000000   0.073712 10001.423400 
100.000000   0.220000   2.000000   0.075520 10324.290168 
100.000000   0.230000   2.000000   0.077267 10577.919498 
100.000000   0.240000   2.000000   0.078932 10731.859176 
100.000000   0.250000   2.000000   0.080537 10781.566931 
100.000000   0.260000   2.000000   0.082081 10687.175109 
100.000000   0.270000   2.000000   0.083562 10580.855944 
100.000000   0.280000   2.000000   0.085001 10526.856376 
100.000000   0.290000   2.000000   0.086381 10581.738511 
100.000000   0.300000   2.000000   0.087723 10731.950591 
100.000000   0.310000   2.000000   0.089018 10909.067948 
100.000000   0.320000   2.000000   0.090281 11099.323889 
100.000000   0.330000   2.000000   0.091511 11296.953911 
100.000000   0.340000   2.000000   0.092710 11499.793402 
100.000000   0.350000   2.000000   0.093879 11702.881224 
...

其中第一列代表我的 x 值,范围从 [100-1000]10 为步长。 第二列显示我的 y 值,范围大约为 [0-3],步长为 0.01

我正在尝试将第三列绘制为二维彩色图。

但由于某种原因,我得到了这些文物。我尝试上下调整网格大小。这是我的代码:

### interpolate data with highlighted datapoints
reset session

#set terminal postscript eps enhanced color font 'Helvetica,10'

# ---------------------------------------------------------------------------------------
#set output './production/SpeedKraft.eps'

set title "" 

set xrange [100:1000]
set yrange [0.01:2.5]

set xlabel "" 
set ylabel "" rotate by 90

# ---------------------------------------------------------------------------------------


set palette grey
set grid
set size square
set view map
set pm3d at b
# set pm3d interpolate 2,2
set dgrid3d 1000,1000 qnorm 2
set table $DataInterpolated
    splot "SpeedNeu.dat" u 1:2:3 
unset table
unset dgrid3d

set format y "%.1f"
set format x "%.0f"



splot $DataInterpolated u 1:2:3 w pm3d palette notitle, \
    #  "Speed.dat" u 1:2:3 w p pt 1 lw 2 lc rgb "black" notitle

### end of code


如果有人能帮我解决这个问题,我很高兴!

问候 芬兰人

【问题讨论】:

    标签: plot gnuplot


    【解决方案1】:

    使用 dgrid3d 创建插值 3D 表面似乎更可能通过过度拟合来掩盖数据结构,而不是启发。你试过更简单的吗

    plot "SpeedNeu.dat" using 1:2:3 with image
    

    甚至

    plot "SpeedNeu.dat" using 1:2:3 with points pt 5 lc palette
    

    已编辑以显示缺失点和点之间空间的处理

    set pointsize 7.2   # exact size found by experimentation
                        # I left a tiny gap so you can see it, 7.3 would remove it
    set size square
    set colorbar user origin 0.9,0.2 size 0.05,0.6
    unset border; unset tics; unset key
    plot "fake.data" using 1:2:3 with points pt 5 lc palette
    

    【讨论】:

    • 这个将绘制点,在这些点之间将是空格。还有其他解决方案吗?
    • 您的意思是分数正确但太小?使用“pointsize ”增加大小。如果您的意思是许多点都被色标一端的极值着色,那么这很可能也是您在插值时遇到的问题。
    • 好的,谢谢!它不是最漂亮的解决方案,而是一个解决方案!我目前正在再次运行计算以获取在 x 和 y 方向具有相等空间的数据,因此插值应该可以工作!感谢您的帮助!
    猜你喜欢
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多