簡體   English   中英

使用matplotlib.pyplot或numpy切斷右手點

[英]Cutting off right hand points using matplotlib.pyplot or numpy

我有一些要用Python腳本繪制的數據。 在x值約為2000之后,數據基本上是白噪聲,需要從圖中刪除。 我可以手動從文件中刪除,但是從長遠來看,通過自動化它會容易得多。 我更喜歡使用numpy或matplotlib進行此操作。 快速文檔掃描后,我找不到任何簡單的解決方案。

您可以使用xlim將限制設置為x軸上顯示的值。 在這種情況下:

plt.xlim(xmax=2000)

文檔中有更多信息。

如果相反,您想在x之后硬截取數據本身,但x並非總是2000,則可以使用最初在此處找到的find most code: 在numpy數組中查找最近的值

然后將數據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值是連續的,則可以執行以下操作:

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數組不連續,則可能需要使用邏輯索引。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM