0

我想绘制从 MNE python 使用 plot_psd() 获得的多个 PSD。

我尝试了以下代码

import matplotlib.gridspec as gridspec

gs = gridspec.GridSpec(3,1)
plt.figure()
ax = plt.axes()

# First plot
ax1 = fig.add_subplot(gs[0]
raw_egi.plot_psd(ax=ax1)

ax2=fig.add_subplot(gs[1]
raw_ws_ds_hp_lp.plot_psd(ax=ax2)

ax3= fig.add_subplot(gs[2]
raw_ws_ds_hp_lp_nf.plot_psd(ax=ax3)

plt.show()

它告诉我我的语法无效。

以下代码正在运行,但所有图都已叠加

import matplotlib.gridspec as gridspec

gs = gridspec.GridSpec(3,1)
plt.figure()
ax = plt.axes()

# First plot
raw_egi.plot_psd(ax=ax)

raw_ws_ds_hp_lp.plot_psd(ax=ax)

raw_ws_ds_hp_lp_nf.plot_psd(ax=ax)

plt.show()

你能告诉我如何绘制这 3 个图形而不叠加但垂直(逐行)。您会在下面找到带有工作代码的图(即 3 个叠加图)感谢您的帮助 在此处输入图像描述

4

1 回答 1

0

这是我如何解决 2 个图的问题

import matplotlib.pyplot as plt

fig, ax = plt.subplots(2)

raw_bp.plot_psd(ax=ax[0], show=False)
raw_bp_nf.plot_psd(ax=ax[1], show=False)

ax[0].set_title('PSD before filtering')
ax[1].set_title('PSD after filtering')
ax[1].set_xlabel('Frequency (Hz)')
fig.set_tight_layout(True)
plt.show()
于 2021-10-05T11:51:41.790 回答