Ich versuche, einem Spektrogramm eine Farbleiste hinzuzufügen. Ich habe jedes Beispiel und Frage Thread, die ich online gefunden habe, versucht und keiner hat dieses Problem gelöstHinzufügen von Farbbalken zu einem Spektrogramm
Beachten Sie, dass "spl1" (Datenspleiß 1) eine Ablaufverfolgung von ObsPy ist.
Mein Code ist:
fig = plt.figure()
ax1 = fig.add_axes([0.1, 0.75, 0.7, 0.2]) #[left bottom width height]
ax2 = fig.add_axes([0.1, 0.1, 0.7, 0.60], sharex=ax1)
ax3 = fig.add_axes([0.83, 0.1, 0.03, 0.6])
t = np.arange(spl1[0].stats.npts)/spl1[0].stats.sampling_rate
ax1.plot(t, spl1[0].data, 'k')
ax,spec = spectrogram(spl1[0].data,spl1[0].stats.sampling_rate, show=False, axes=ax2)
ax2.set_ylim(0.1, 15)
fig.colorbar(spec, cax=ax3)
Es kommt mit dem Fehler aus:
Traceback (most recent call last):
File "<ipython-input-18-61226ccd2d85>", line 14, in <module>
ax,spec = spectrogram(spl1[0].data,spl1[0].stats.sampling_rate, show=False, axes=ax2)
TypeError: 'Axes' object is not iterable
bisher bestes Ergebnis:
Ersetzen der letzten 3 Zeilen weiter oben mit:
ax = spectrogram(spl1[0].data,spl1[0].stats.sampling_rate, show=False, axes=ax2)
ax2.set_ylim(0.1, 15)
fig.colorbar(ax,cax=ax3)
und diesen Fehler für die colorbar:
axes object has no attribute 'autoscale_None'
Ich habe keine Möglichkeit, in der Lage sein scheinen zu finden, die colorbar auf dem rechten Flügel an die Arbeit.
Lösungen?
Eine der Lösungen, die ich gesehen habe, ist, dass Sie ein 'Bild' Ihrer Daten mit imshow() erstellen müssen, aber ich bekomme keine Ausgabe von Spectrogram(), nur 'ax'. Ich habe Orte gesehen, die mit dem "ax, spec" -Ausgang von spectrogram() versuchen, aber das verursacht den TypeError.
- Sehr ähnlich Code, den ich gefunden, aber nicht https://www.nicotrebbin.de/wp-content/uploads/2012/03/bachelorthesis.pdf (ctrl + f 'colorbar')
- funktionierte bei Codebeispielen Sieht from a related question
- imshow() suggestions und example - nicht eine Ausgabe erhalten aus Spektrogramm, um in ein Bild zu verwandeln. Die zweite Verbindung, kann ich auch bekommen nicht das mlpy Modul zu arbeiten (es nicht denkt, es gibt eine mlpy.wavelet Funktion)
- Dieses Problem wird in an improvement post for obspy angesprochen wurde, aber die Lösung, die er erklärte er wurde nicht gefunden
Ich hoffe, dass jemand dabei helfen kann - ich habe den ganzen Tag daran gearbeitet!
Haben Sie erfolgreich ein Spektrogramm ohne colorbar aufgetragen? Was ist die "Spektrogramm" -Funktion (aus welcher Bibliothek), die Sie verwenden? – gsmafra
@gsmafra Ich habe den Beitrag oben mit mehr Informationen aktualisiert - Ich kann das Spektrogramm zur Darstellung normalerweise ja bekommen. Die Spektrogramm-Funktion ist: obspy.imaging.spectrogram.spectrogram (wie es einfachere eingebaute Funktionalität hat) - obwohl darunter verwendet wird – mjp
laufenden Diskussion in: https://github.com/obspy/obspy/issues/1086 welche hat ein erfolgreiches Farbbalken-Diagramm. Funktioniert nicht für meine Situation, aber wenn dort eine Lösung gefunden wird, werde ich auch hier die Lösung hinzufügen. – mjp