使用gnuplot

时间:2017-08-13 11:31:36

标签: 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) with line ls 2

我得到了这个情节

zig-zag curve no smooth curve

虽然我期待这种类型的曲线

smooth curve no zig-zag curve

1 个答案:

答案 0 :(得分:1)

您尚未展示您的特定功能,但这几乎肯定是一个抽样问题。 Gnuplot并没有真正绘制函数的曲线 - 它实际上计算多个点的函数并用直线连接它们,类似于绘制数据文件时会发生的情况。它计算的点数是用户可设置的。

假设我plot sin(x)并看到这个: Jagged sine curve

这里采样率设置得相当低。我们可以查看各个点,以了解正在发生的事情。

Jagged sine curve with points

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

Smooth sine curve

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

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

Smooth sine curve with points

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

set samples命令(可选)采用两个值,但第二个值仅用于3d图。您可以使用help samples命令找到更多信息。