使用wfdb包绘制ECG信号后无法保存输出为图片的问题求助
解决WFDB绘制ECG后保存图片为空的问题
你的问题核心在于:你新建了一个空白画布来保存,而非使用WFDB已经绘制好的ECG图。让我给你两个简单可行的解决方案:
方案1:直接获取WFDB绘图返回的Figure对象
wfdb.plot_wfdb支持通过return_fig=True参数返回它生成的绘图对象,这样就能直接保存正确的ECG信号图了:
record = wfdb.rdrecord('ptb/records100/00000/00001_lr') # 启用return_fig参数,获取生成的fig和ax对象 fig, ax = wfdb.plot_wfdb(record=record, title='ECG', figsize=(20,20), return_fig=True) # 保存包含ECG信号的fig fig.savefig('test.png', dpi=100)
方案2:获取当前已绘制的Figure
如果你不想修改plot_wfdb的调用逻辑,也可以用plt.gcf()(Get Current Figure)获取WFDB已经画好的图,而不是创建新的空白画布:
record = wfdb.rdrecord('ptb/records100/00000/00001_lr') wfdb.plot_wfdb(record=record, title='ECG', figsize=(20,20)) # 获取当前的绘图对象,而非新建空白图 fig1 = plt.gcf() fig1.savefig('test.png', dpi=100)
小补充
如果保存后仍有异常,可以尝试在保存前加上plt.show(block=False)(避免程序被绘图窗口阻塞),或者确认代码里没有提前关闭绘图窗口的操作。
内容的提问来源于stack exchange,提问作者Doaa Ahmed
相关产品推荐
相关产品推荐

