Кажется, что это редкий случай, но вот что со мной произошло:
Мы использовали @Inject
вместо @Autowired
, который является стандартом javaee, поддерживаемым Spring. В каждом месте он работал нормально, а бобы вводили правильно, а не в одно место. Инъекция компонента выглядит одинаково
@Inject
Calculator myCalculator
Наконец, мы обнаружили, что ошибка заключалась в том, что мы (фактически, функция автозавершения Eclipse) импортировали com.opensymphony.xwork2.Inject
вместо javax.inject.Inject
!
Итак, чтобы суммировать, убедитесь, что ваши аннотации (@Autowired
, @Inject
, @Service
, ...) имеют правильные пакеты!
Вы можете использовать функции matplotlib.pyplot.xlim
и matplotlib.pyplot.ylim
для установки пределов обеих ваших осей.
[EDITED] В приведенном ниже примере я загружаю wav-файл длиной 3 секунды для песни Cantina Band, загруженной с этого веб-сайта :
import matplotlib.pyplot as plt
from scipy.io import wavfile
samplingFrequency, signalData = wavfile.read('C:/Users/Sheldon/Desktop/WAVEEXAMPLE/CantinaBand3.wav')
plt.title('Spectrogram')
Pxx, freqs, bins, im = plt.specgram(signalData,Fs=samplingFrequency,NFFT=512)
plt.xlabel('Time')
plt.ylabel('Frequency')
plt.xlim(left=0,right=17)
plt.savefig('C:/Users/Sheldon/Desktop/WAVEEXAMPLE/fig11.png')
Этот скрипт выдает следующее изображение:
Если бы я не указал plt.xlim(left=0, right=17)
, выходной показатель был бы в диапазоне от 0 до 3 секунд :
Вы также можете использовать Python's Librosa . Вот полный код в соответствии с вашими требованиями:
import librosa
import matplotlib.pyplot as plt
sig, fs = librosa.load(filename, sr=44100) #you can specify sample rate as well
save_path = filename[:-4]+'.png'
plt.figure(figsize=(6.40,4.80), dpi=1000) #this makes the image resolution as 640x480
plt.axis('off') # no axis
plt.axes([0., 0., 1., 1.], frameon=False, xticks=[], yticks=[])
S = librosa.feature.melspectrogram(y=y, sr=44100, n_fft=4096, hop_length=2205, n_mels=512) #you can update it as per your requirement
librosa.display.specshow(librosa.power_to_db(S, ref=np.max), cmap='jet')
plt.xlim(left=0,right=17)
plt.savefig(save_path, dpi=100, bbox_inches=None, pad_inches=0)
plt.close()