如何在wfdb中仅显示指定类型的标注(如仅显示'V'标注)
只显示WFDB标注中的'V'类信号解决方案
要只保留'V'标注,核心是先过滤标注数据,剔除掉'N'及其他类型的标注,再将过滤后的数据传入绘图函数。修改后的代码如下:
import wfdb def show_graph(rec_name): record = wfdb.rdrecord( record_name=rec_name, sampto=4500 ) anno = wfdb.rdann( record_name=rec_name, extension='atr', sampto=4500 ) # 过滤出仅符号为'V'的标注样本点和对应符号 v_samps = [samp for samp, sym in zip(anno.sample, anno.symbol) if sym == 'V'] v_syms = ['V'] * len(v_samps) wfdb.plot_items( signal=record.p_signal, ann_samp=[v_samps], # 传入仅含V标注的样本列表 ann_sym=[v_syms], # 传入对应V标注的符号列表 sharex=True, sharey=True ) show_graph('sudden-cardiac-death-holter-database-1.0.0/31')
关键修改说明
- 用列表推导式遍历
anno.sample和anno.symbol的配对数据,只保留符号为'V'的样本点 - 生成对应长度的
'V'符号列表,确保标注和样本点一一对应 - 绘图时不再传入完整的标注数据,而是传入过滤后的
v_samps和v_syms,且因为ann_samp和ann_sym接受的是列表的列表(支持多组标注),所以用[v_samps]和[v_syms]的形式传入
内容的提问来源于stack exchange,提问作者A пYпA
相关产品推荐
相关产品推荐

