使用gnuplot获得平滑曲线

使用gnuplot获得平滑曲线,gnuplot,Gnuplot,我在gnuplot上没有得到平滑曲线 这是我的代码: set style line 3 lc rgb '#09ad00' lt 1 lw 1.5 #green set style line 1 lc rgb '#0060ad' lt 1 lw 2 #blue set style line 2 lc rgb '#dd181f' lt 1 lw 2 #red plot [-1:1] f1(x) with line ls 3,f2(x) with line ls 1,f1(x)+f2(x) wi

我在gnuplot上没有得到平滑曲线

这是我的代码:

set style line 3 lc rgb '#09ad00' lt 1 lw 1.5 #green
set style line 1 lc rgb '#0060ad' lt 1 lw 2  #blue 
set style line 2 lc rgb '#dd181f' lt 1 lw 2  #red
plot [-1:1] f1(x) with line ls 3,f2(x) with line ls 1,f1(x)+f2(x) with line ls 2
我得到这个阴谋

而我正期待着这种曲线


您还没有展示您的特定函数是什么,但这几乎肯定是一个采样问题。Gnuplot并没有真正为函数绘制曲线——它实际上是在多个点上计算函数,并用直线将它们连接起来,这与绘制数据文件时的情况类似。它计算的点数是用户可设置的

假设我绘制了sin(x),并看到了这一点:

这里的采样率设置得很低。我们可以查看各个点,以了解发生了什么

为了改善这一点,我需要使用
set samples?
命令提高采样率。默认值为100(在5.0修补程序级别6中)。根据功能变化的速度,可能需要更高的值。我通常使用
set samples 1000
将其设置为1000左右。这会将图形更改为

这会产生一条更平滑的曲线。同样,这只是一组由直线连接的点,但当有很多直线时,它看起来像一条平滑的连续曲线

我们可以再次查看各个点(使用100的采样率,因为1000太多,无法清楚地看到这些点)

我们还可以在这里看到,1000点和100点的图之间没有太大的差异。在正弦曲线的情况下,100足以看到平滑的图形,但对于变化较快的曲线,我们可能需要更多


set samples
命令(可选)获取两个值,但第二个值仅用于三维打印。您可以使用
帮助示例
命令了解更多信息

添加一行
set samples 200
Gnuplot的默认(相对较低)样本数可能与程序的使用年限(读取速度较慢的计算机)有关。我建议在
$HOME/.gnuplot
中放置一个
set samples 1001
命令,而且根据经验,样本数可能在
30*最大值数左右。回答得很好。@GBOFI我还没有查看历史值,以查看默认值是否与早期版本相比有所改变,但是,是的,您几乎可以肯定为什么它如此低。