Python 使用matplotlib.pyplot或numpy切断右手点

Python 使用matplotlib.pyplot或numpy切断右手点,python,numpy,matplotlib,Python,Numpy,Matplotlib,我有一些用Python脚本绘制的数据。x值~2000后,数据基本上是白噪声,需要从图形中删除。我可以手动从文件中删除,但从长远来看,通过自动化,这会容易得多。我更喜欢使用numpy或matplotlib来实现这一点。在快速扫描文档之后,我找不到任何简单的解决方案 如果x值是连续的,则可以执行以下操作: import numpy as np import matplotlib.pyplot as plt x = np.arange(1, 3001) y = np.sin(x/250) plt.

我有一些用Python脚本绘制的数据。x值~2000后,数据基本上是白噪声,需要从图形中删除。我可以手动从文件中删除,但从长远来看,通过自动化,这会容易得多。我更喜欢使用numpy或matplotlib来实现这一点。在快速扫描文档之后,我找不到任何简单的解决方案

如果x值是连续的,则可以执行以下操作:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(1, 3001)
y = np.sin(x/250)

plt.plot(x, y)
plt.show()

plt.plot(x[0:2000], y[0:2000])
plt.show()

请注意,当x大于2000时,第二个图将截断值。如果x数组不连续,则可能需要使用逻辑索引。

如果x值连续,则可以执行以下操作:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(1, 3001)
y = np.sin(x/250)

plt.plot(x, y)
plt.show()

plt.plot(x[0:2000], y[0:2000])
plt.show()

请注意,当x大于2000时,第二个图将截断值。如果x阵列不连续,则可能需要使用逻辑索引。

您可以使用
xlim
设置x轴上显示的值的限制。在这种情况下:

plt.xlim(xmax=2000)

中有更多信息。

您可以使用
xlim
对x轴上显示的值设置限制。在这种情况下:

plt.xlim(xmax=2000)

中有更多信息。

如果您想在x之后硬切掉数据本身,但x并不总是精确到2000,则可以使用此处最初找到的“查找最近的代码”:

然后将数据x和y分配给新变量,如:

import numpy as np
def find_nearest(array, value):
    array = np.asarray(array)
    idx = (np.abs(array - value)).argmin()
    return [idx]

Cutoff_idx = find_nearest(x, 2000.)

Xnew = x[:Cutoff_idx]
Ynew = y[:Cutoff_idx]

相反,如果您想在x之后硬切掉数据本身,但x并不总是正好为2000,则可以使用最初在此处找到的“查找最近的代码”:

然后将数据x和y分配给新变量,如:

import numpy as np
def find_nearest(array, value):
    array = np.asarray(array)
    idx = (np.abs(array - value)).argmin()
    return [idx]

Cutoff_idx = find_nearest(x, 2000.)

Xnew = x[:Cutoff_idx]
Ynew = y[:Cutoff_idx]