python中的二维和三维谱图

python中的二维和三维谱图,python,matplotlib,scipy,spectrogram,matplotlib.mlab,Python,Matplotlib,Scipy,Spectrogram,Matplotlib.mlab,我已经用python scipy创建了2D和3D光谱图。2D光谱图是完全正确的,但3D光谱图看起来是错误的,它有额外的蓝色。什么是错误的3D规格 以下是2D光谱图的代码: f, t, Sxx = signal.spectrogram(data, fs=5e9) plt.pcolormesh(t, f, 10*np.log10(Sxx), cmap='plasma') plt.show() 然后用于生成3D: fig = plt.figure() ax = fig.gca(projection

我已经用python scipy创建了2D和3D光谱图。2D光谱图是完全正确的,但3D光谱图看起来是错误的,它有额外的蓝色。什么是错误的3D规格

以下是2D光谱图的代码:

f, t, Sxx = signal.spectrogram(data, fs=5e9)

plt.pcolormesh(t, f, 10*np.log10(Sxx), cmap='plasma')
plt.show()
然后用于生成3D:

fig = plt.figure()
ax = fig.gca(projection='3d')

ax.plot_surface(t[None,:], f[:,None], 10*np.log10(Sxx), cmap='plasma')
plt.show()
以下是我得到的:

二维光谱图:

f, t, Sxx = signal.spectrogram(data, fs=5e9)

plt.pcolormesh(t, f, 10*np.log10(Sxx), cmap='plasma')
plt.show()


三维光谱图:

f, t, Sxx = signal.spectrogram(data, fs=5e9)

plt.pcolormesh(t, f, 10*np.log10(Sxx), cmap='plasma')
plt.show()

什么是3D光谱图?光谱图通常是二维热图,我不确定如何将其扩展到三维尺寸?我想将二维热图绘制到三维投影中,其中“Sxx”是z轴,垂直于
t
f
是“heat”的值。嗨,Malum,很好的绘图,我没有看到很多问题。。有14毫秒的静止信号,采样频率(fs)为5GHz,因此频谱范围为2.5 GHz,Y轴在两个图中都是正确的。看起来3d绘图中的颜色范围稍宽,我不担心这一点,也许您可以使用2d绘图的vmin和vmax属性进行更正。Z轴的单位是分贝,10*log10(Sxx),而不是Sxx。符号颠倒了,我看不到-100偏移量是从哪里来的。非常小的振幅?动力学约为40 dB。如何使两个光谱图上的颜色范围相同,即从黄色到红色?如何为3D光谱图设置任何vmin、vmax?什么是3D光谱图?光谱图通常是二维热图,我不确定如何将其扩展到三维尺寸?我想将二维热图绘制到三维投影中,其中“Sxx”是z轴,垂直于
t
f
是“heat”的值。嗨,Malum,很好的绘图,我没有看到很多问题。。有14毫秒的静止信号,采样频率(fs)为5GHz,因此频谱范围为2.5 GHz,Y轴在两个图中都是正确的。看起来3d绘图中的颜色范围稍宽,我不担心这一点,也许您可以使用2d绘图的vmin和vmax属性进行更正。Z轴的单位是分贝,10*log10(Sxx),而不是Sxx。符号颠倒了,我看不到-100偏移量是从哪里来的。非常小的振幅?动力学约为40 dB。如何使两个光谱图上的颜色范围相同,即从黄色到红色?如何为3D光谱图设置任何vmin、vmax?