Plot 具有奇点的等位线/等高线图
我很难在gnuplot中创建具有等势线的绘图。以下是我到目前为止得到的信息:Plot 具有奇点的等位线/等高线图,plot,gnuplot,singular,Plot,Gnuplot,Singular,我很难在gnuplot中创建具有等势线的绘图。以下是我到目前为止得到的信息: f(x,y) = atan(y/(x+d)) d = 1.0 set view map set isosamples 127, 127 unset surface set contour base set cntrparam levels discrete pi/4.0 set xrange [ -2.0 : 2.0 ] noreverse nowriteback set yrange [ -2.0 : 2.0
f(x,y) = atan(y/(x+d))
d = 1.0
set view map
set isosamples 127, 127
unset surface
set contour base
set cntrparam levels discrete pi/4.0
set xrange [ -2.0 : 2.0 ] noreverse nowriteback
set yrange [ -2.0 : 2.0 ] noreverse nowriteback
splot f(x,y) w l
它似乎工作得很好,您可以看到坡度为45°的线条,除了x=-1处的线条:
我认为这是因为atan
的论点中的奇异性。在我的最后一个情节中,甚至有更多类似的奇点,但类似的线条并不适合它
另一件事:这些线应该穿过[-1,0]
,但是你可以清楚地看到线上有一个洞。我怎样才能得到一个没有洞和错误线的干净的图呢
我如何处理这个问题
如果没有,也许还有另一种绘制等电位线的方法
作为最后一个解决方案,如果gnuplot不能做到这一点,您有什么建议
谢谢:)您可以尝试:设置样本125
和设置isosamples 125,125
以包括奇点。这条线将分成两部分。这对我不起作用。但是看起来,作为第一种解决方法,我可以将set samples
和set isosamples
与一个分段定义的函数相结合,比如f(x)=abs(x+d)>1e-2?atan(y/(x+d)):NaN
。然后我仍然得到一些奇怪的洞,但至少这些人造线条消失了。。。仍然在寻找解决方案,而不是解决方法:)我承认这很有趣,您可以尝试使用atan2()
而不是atan()
或arg(x+d+y*{0,1})
,但我似乎错过了一些东西。也许这会对你有帮助。我期待看到解决方案。您可以尝试:set samples 125
和set isosamples 125,125
以包括奇点。这条线将分成两部分。这对我不起作用。但是看起来,作为第一种解决方法,我可以将set samples
和set isosamples
与一个分段定义的函数相结合,比如f(x)=abs(x+d)>1e-2?atan(y/(x+d)):NaN
。然后我仍然得到一些奇怪的洞,但至少这些人造线条消失了。。。仍然在寻找解决方案,而不是解决方法:)我承认这很有趣,您可以尝试使用atan2()
而不是atan()
或arg(x+d+y*{0,1})
,但我似乎错过了一些东西。也许这会对你有帮助。我期待着看到解决办法。