如何将正弦波的比例限制到某个值

2024-04-26 00:36:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用下面的代码,以便在极限值20后放大正弦波的振幅。这里我不能限制正弦的振幅请挥手参考下图。我需要图中所述的输出在单个绘图窗口中[而不是通过子窗口]。我只需要振幅缩放,不需要频率缩放。可以有人帮我吗。在

import matplotlib.pyplot as plt
import numpy as np

Limit=20

x=np.linspace(-20,20,400)
y=np.sin(x)
plt.plot(x,y)

y[(y<=Limit)] = y*0.5
plt.plot(x,y)

plt.grid()
plt.show()

enter image description here


Tags: 代码import绘图plotmatplotlibasnpplt
2条回答

可以相对简单地进行如下操作:

import matplotlib.pyplot as plt
import numpy as np

Limit=20

x=np.linspace(-20,20,4000)
y=np.sin(x)
plt.plot(x[x<0],y[x<0], lw=2, color='k')

y[(y<=Limit)] = y*0.5
plt.plot(x[x>0],y[x>0], lw=2, color='k')

plt.grid()
plt.show()

产生:

Output from the example code

你在找这个吗:

import matplotlib.pyplot as plt
import numpy as np

x_limit = 20

x = np.linspace(0,40,400)
y = np.sin(x)
y[x <= x_limit] *= 0.5
plt.plot(x,y)

plt.grid()
plt.show()

我想你是想把这个极限应用到x上,而不是y上

enter image description here

相关问题 更多 >

    热门问题