Zeigen Sie den Wert an der schwebenden Position (x,y) mit interaktiven pcolormesh-Plots anPython

Python-Programme
Anonymous
 Zeigen Sie den Wert an der schwebenden Position (x,y) mit interaktiven pcolormesh-Plots an

Post by Anonymous »

Ich finde die unten gezeigten Koordinaten (in der Form: (x, y) [z]) sehr nützlich für die Interaktion mit den Daten. Leider zeigt librosa.display.specshow nicht den Wert bei (x, y) an, sondern nur die Koordinaten. Die zugrunde liegende Funktion ist plt.pcolormesh. Wie kann ich ein ähnliches Verhalten erreichen?

Code: Select all

%matplotlib widget

import librosa
import matplotlib.pyplot as plt
import numpy as np

y, sr = librosa.load(librosa.ex('trumpet'))
D = librosa.stft(y)
mag = np.abs(D)

plt.figure()
plt.subplot(2,1,1)
plt.title('Using plt.imshow')
plt.imshow(librosa.amplitude_to_db(mag, ref=np.max), aspect='auto', origin='lower', cmap='magma')
plt.subplot(2,1,2)
plt.title('Using librosa.display.specshow')
librosa.display.specshow(librosa.amplitude_to_db(mag, ref=np.max), sr=sr, y_axis='log', x_axis='time', cmap='magma')
plt.tight_layout()
plt.show()
Image

Image

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post