python - 将 Python 中的 PSD 图旋转 90 度 - 第 2 部分
问题描述
在从此处发布的解决方案中获得大量帮助后,我现在在绘制功率谱密度图以显示 y 轴值并且 x 轴的标签出现在顶部时出现问题,如图所示这里:
这是我使用Sheldon向我展示的代码后得到的情节。
您能帮我将 yticks 标签与将 x 轴标题放在图表顶部一起显示吗?谢谢。
这是我到目前为止的代码:
import matplotlib.pyplot as plt
from matplotlib import transforms
import numpy as np
from numpy.fft import fft, rfft
from scipy.io import wavfile
from scipy import signal
import librosa
import librosa.display
from matplotlib.gridspec import GridSpec
input_file = (r'G:/File.wav')
fs, x = wavfile.read(input_file)
nperseg = 1025
noverlap = nperseg - 1
f, t, Sxx = signal.spectrogram(x, fs,
nperseg=nperseg,
noverlap=noverlap,
window='hann')
plt.psd(x, 512, fs)
def format_axes(fig):
for i, ax in enumerate(fig.axes):
ax.tick_params(labelbottom=False, labelleft=False)
fig = plt.figure(constrained_layout=True)
gs = GridSpec(6, 5, figure=fig)
ax1 = plt.subplot(gs.new_subplotspec((0, 1), colspan=4))
ax2 = plt.subplot(gs.new_subplotspec((1, 0), rowspan=4))
ax2.plot(-10*np.log10(Pxx),freq)
plt.xlabel("(dB/Hz)")
plt.ylabel('Frequency (Hz)')
plt.yticks(np.arange(0,22050, 5000))
plt.tick_params(axis=u'both', which=u'both',length=0)
plt.ylim([0, 22050])
plt.ylabel("")
plt.xlabel("")
# plt.xlim(0, t)
fig.suptitle("Sound Analysis")
format_axes(fig)
plt.show()
解决方案
推荐阅读
- sql - 3张桌子加入
- javascript - Google 网站和 Google 应用程序脚本
- java - JPA 和休眠搜索,java.lang.NoSuchMethodError
- slurm - 为什么当我使用 .sh 文件“批量”多个作业时,slurm 分配的任务比我询问的要多?
- reactjs - 设置 react-table page prop 会导致 onFetchData 始终请求同一页面
- php - php查看json数组修改特殊值并返回数组
- html - 不能将 base64 编码的 EOT 字体包含在内联 CSS
- ios - IOS:如何检测用户在后台获取时更改的时区
- spring - Spring Batch:多个文件编写器的页脚回调未给出确切计数
- node.js - jest 是否运行用于测试“toThrowError”的包装函数?