Gnuplot:停止对3D绘图中的数据进行网格线平均

Gnuplot:停止对3D绘图中的数据进行网格线平均,gnuplot,Gnuplot,我遇到了一个问题,我试图画出吉布斯分布p=exp(-E/kT)在3D中的图(p vs E vs T),并在上面画网格线。我基本上想重现第3页顶部的图,但每当我插入网格线时,它会对过多的数据进行平均,而我的图看起来几乎是平的(它在t->0附近没有急剧下降,因为它对过多的数据进行平均)。有人能帮我吗?Ty如果您尝试使用默认范围绘制该函数,您将得到一幅几乎是平面的图像 # Arbitrary value for k. # I am not familiar with the physics her

我遇到了一个问题,我试图画出吉布斯分布p=exp(-E/kT)在3D中的图(p vs E vs T),并在上面画网格线。我基本上想重现第3页顶部的图,但每当我插入网格线时,它会对过多的数据进行平均,而我的图看起来几乎是平的(它在t->0附近没有急剧下降,因为它对过多的数据进行平均)。有人能帮我吗?Ty

如果您尝试使用默认范围绘制该函数,您将得到一幅几乎是平面的图像

# Arbitrary value for k.  
# I am not familiar with the physics here, so this may or may not be a reasonable value.
k = 2

P(E,T) = exp(-E/(k*T))
set xlab "Energy"
set ylab "Temperature"
splot P(x,y)

请注意,在y=0(y为温度)时存在峰值,这些峰值接近有效z值(3.5 x 10^21)。由于其余的值永远不会超过1(这是一种概率),这些尖峰压倒了所有其他值,因此图表在其他地方显示为平坦。按照注释中的建议调整isosamples无助于此

这并不漂亮,但是如果我们使用
设置zrange[0:2]
将z范围限制在一个小的间隔内,我们可以看到在哪里会发生这种情况

这里的问题是,对于具有正能量的低负温度,函数趋于无穷大(反之亦然)。低正温度(具有正能量)不存在该问题(函数在T=0时未定义,但当E>0时,当T从上方接近0时的极限定义为0)。在上下文中,x或y无论如何都有负值是没有意义的

要解决此问题,请将x和y范围设置为0到8(与链接图像相匹配),并调大isosamples(以提供更精细的网格)

现在,使用
splotp(x,y)
绘图会生成与所需图像类似的图像

或者使用稍微粗糙的网格(
设置isosamples 30

请注意,此处缺少温度为0的行。这也是因为函数没有在那里定义。我们可以使用
set yrange[0.001:8]
将范围设置为非常接近0,但远离0以补偿这一点(在更精细的网格中,gnuplot甚至没有在那里尝试一条线,或者丢失的线太密集以至于我们无法注意到)


那么,您的非工作脚本是什么样子的呢?请检查
帮助isosamples
@bibi isosamples无法修复此问题。这不是由于OP建议的“对过多数据进行平均”,而是因为函数在t=0时具有奇点。
set xrange[0:8]
set yrange[0:8]
set isosamples 100