Python:方程图平滑但给出 'jagged' 输出?

Python: Equation graphs smooth but gives 'jagged' output?

我正在使用 python 2.7,交互式笔记本。

当我绘制这段代码时...

plt.xlabel('Frame')
plt.ylabel('Iterations')
x = np.arange(-10000., 10000., 1)
y = (np.rint((-np.sin(x/88)+x*0.0027)*26.2))-5
y = np.clip(y, 0, 200)
plt.axis([0, 1500, -4, 100])
plt.plot(x, y, linewidth=0.5, color='g')
plt.grid()
plt.show()

我得到了一个非常平滑的图形。

看到这里

但是当我将其应用于我试图平滑更改的迭代次数时,使用以下代码四舍五入到最接近的整数:

frame_i = 1
nrframes = 1500
for i in xrange(frame_i, nrframes):
    actualiter = (-np.sin(frame_i/88)+frame_i*0.0027)*26.2 #Iteration Bouncy Curve
    actualiter = np.clip(actualiter, 0, 200)
    plt.plot([frame_i],[actualiter], 'ro')
    plt.axis([0, 1500, 0, 100])
    frame_i = frame_i + 1
plt.show()

我在这里看到非常参差不齐的输出

有谁知道为什么?我的一些其他函数在我的代码中用于计算数字时也 "seem" 非常 "jaggy"

y = -(cos(x/10)*0.007)+0.0029
y = -(cos(x/25)*1)

在你的第一个例子中 x 是一个浮点数,所以 (x/88) 产生一个浮点数并且你有一个连续可变的 sin 函数:
[sin(0.114), sin(0.227), sin(0.341)... etc.]

在你的第二个中,frame_i 是一个整数,所以 (frame_i/88) 被执行为整数除法,因此你的 sin 函数有步骤:
[sin(0), sin(0), .... , sin(0), sin(1), sin(1),... etc.]

88 更改为 88.0 强制进行浮点除法,您将再次获得平滑的正弦波。