使用gnuplot获得平滑曲线
我在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
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我还没有查看历史值,以查看默认值是否与早期版本相比有所改变,但是,是的,您几乎可以肯定为什么它如此低。