Machen Sie mit Python eine Joyplot-ähnliche Handlung von R.

1. Was ist Joyplot?

joyplot ist eine Handlung wie diese, über die vor einiger Zeit auf Twitter gesprochen wurde.

Dies scheint mit Rs [ggjoy] -Paket (https://cran.r-project.org/web/packages/ggjoy/vignettes/introduction.html) einfach zu zeichnen zu sein. In Python schien es nichts Ähnliches zu geben.

Der Grund, warum Joy Plot ist, ist übrigens, dass das Cover des Albums "Unknown Pleasures" der Band Joy Division wie das folgende aussieht. pulsar_detail.jpg

Wenn Sie diesen Joyplot verwenden, erscheint es höflich, beim Anhören von this zu zeichnen. (Ist eine Lüge)

2. Umwelt

3. Datengenerierung

Als ich mir dieses Diagramm ansah, dachte ich, dass es nützlich sein würde, um Bayes zu aktualisieren und das Spektrogramm zu zeichnen, also werde ich dieses Mal vorerst das Diagramm des Spektrogramms ausprobieren. Verwenden Sie das Beispiel des Scipy-Spektrums.

from scipy import signal
import matplotlib.pyplot as plt
fs = 10e3
N = 1e5
amp = 2 * np.sqrt(2)
noise_power = 0.01 * fs / 2
time = np.arange(N) / float(fs)
mod = 500*np.cos(2*np.pi*0.25*time)
carrier = amp * np.sin(2*np.pi*3e3*time + mod)
noise = np.random.normal(scale=np.sqrt(noise_power), size=time.shape)
noise *= np.exp(-time/5)
data = carrier + noise

f, t, Sxx = signal.spectrogram(data, fs, nperseg=1000, noverlap=900)

4. Handlung

Ich beziehe mich auf hier in stackoverflow.


y = Sxx.T

#Da es viele gibt, schneiden Sie es.
y_subset_num = 10
x_subset_num = 20
y = y[0:y_subset_num, 0:x_subset_num]
ny, nx = y.shape 
x = f[0:x_subset_num]

y_delta = (y.max() - y.min()) / ny #Dieses y=Zeichnen durch Verschieben nach Delta.
yticks = [] #Zum Speichern der Position von yticks

fig = plt.figure()
ax = fig.add_subplot(111)

for iy in np.arange(ny):
    offset = (ny-iy) * y_delta #Plotten von oben nach unten
    y_value = y[iy] + offset #Verschiebung um Versatz.
    ax.plot(x, y_value, color='w', lw=1, zorder=iy)
    ax.fill_between(x=x, y1=y_value, y2=offset, alpha=0.5, lw=0, zorder=iy, color="red")
    # y_Zeichnen Sie die Wertelinie und malen Sie darunter.
    yticks.append(offset)

#Die Oberseite des Diagramms ist jünger, also kehren Sie die Reihenfolge um.
yticks = yticks[::-1]
ytickslabel = np.arange(len(yticks))[::-1]

ax.set_yticks(yticks)
ax.set_yticklabels(ytickslabel)

ax.set_xlabel("Frequency [Hz]")
plt.show()

figure_1.png

Ich fühle mich so. Damit es schön aussieht, müssen Sie einige Anpassungen vornehmen. Sie müssen im obigen Code um `` `y_delta``` herum ändern.

5. Schließlich (hinzugefügt am 26. August 2017)

Ich entdeckte, dass im letzten Monat Joyplot zum Beispiel der Seegeborenen hinzugefügt wurde. https://github.com/mwaskom/seaborn/blob/master/examples/kde_joyplot.py

figure_1.png

Wir haben auch [joypy] gefunden (https://github.com/sbebo/joypy). temperatures.png

Es wäre besser, eine dieser beiden zu verwenden.

Recommended Posts

Machen Sie mit Python eine Joyplot-ähnliche Handlung von R.
Kopieren Sie die Liste in Python
Erstellen Sie eine Multiplikationstabelle für jedes Element in einer Tabelle (Python).
Zeigen Sie eine Liste der Alphabete in Python 3 an
Erstellen Sie ein Beziehungsdiagramm von Python-Modulen
Lassen Sie uns eine Kombinationsberechnung mit Python durchführen
Zeichnen Sie in Python ein Diagramm einer quadratischen Funktion
Holen Sie sich den Aufrufer einer Funktion in Python
Umschreiben von Elementen in einer Listenschleife (Python)
Mach ein Janken-Spiel in einer Zeile (Python)
Ausgabe in Form eines Python-Arrays
Lassen Sie uns einen Teil des maschinellen Lernens mit Python berühren
Aufgezeichnete Umgebung für die Datenanalyse mit Python
Versuchen Sie, ein Python-Modul in C-Sprache zu erstellen
Erstellen Sie eine Kopie einer Google Drive-Datei aus Python
Eine Code-Sammlung, die häufig in persönlichem Python verwendet wird
Erstellen Sie einen einfachen Slackbot mit einer interaktiven Schaltfläche in Python
Gruppieren Sie nach aufeinanderfolgenden Elementen einer Liste in Python
Zeigen Sie ein Histogramm der Bildhelligkeitswerte in Python an
Ein Memorandum über die Umsetzung von Empfehlungen in Python
Machen Sie einen Screenshot in Python
Erstellen Sie eine Funktion in Python
Objektäquivalenzbeurteilung in Python
Mach nicht test.py in Python!
Machen Sie eine Lotterie mit Python
Stellen Sie Opencv in Python zur Verfügung
Segfo Python in 2 Zeilen
Zeichne ein Herz in Python
Implementierung der schnellen Sortierung in Python
Zeichnen Sie geografische Informationen in Python
Finden Sie die scheinbare Breite einer Zeichenfolge in Python heraus
[Python] So erstellen Sie eine Liste von Zeichenfolgen Zeichen für Zeichen
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Machen wir einen Spot Sale Service 4 (in Python Mini Hack-a-thon)
[Hinweis] Import von Dateien in das übergeordnete Verzeichnis in Python
So erhalten Sie eine Liste der integrierten Ausnahmen für Python
Ein Memo, dass ich eine Grundfunktion in Python mit Wiederholung geschrieben habe
Vergleich der Datenrahmenbehandlung in Python (Pandas), R, Pig
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Eine Reihe von Skriptdateien, die Wordcloud mit Python3 ausführen
Finden Sie die Eigenwerte einer reellen symmetrischen Matrix in Python
Ich möchte eine schöne Ergänzung zu input () in Python hinzufügen
Eine Geschichte, die ich machen wollte, als ich eine Liste von Lernsitzungen mit Python bekam
Eine Aufzeichnung zum Patchen eines Python-Pakets
Wahrscheinlich in einer Nishiki-Schlange (Originaltitel: Vielleicht in Python)
Schreiben Sie eine Dichotomie in Python
Segfo Python in einer Zeile
Eine gute Beschreibung der Python-Dekorateure
[Python] Verwalten Sie Funktionen in einer Liste
Drücken Sie einen Befehl in Python (Windows)
Erstellen Sie einen DI-Container mit Python
Lassen Sie uns eine GUI mit Python erstellen.
Führen Sie den Shell-Befehl / Python in R aus
[Python] Ein Memorandum der schönen Suppe4
Zeichnen Sie eine Streudiagrammmatrix mit Python
Zeitdelta in Python 2.7-Serie teilen
Eine kurze Zusammenfassung der Python-Sammlung
ABC166 in Python A ~ C Problem
MySQL-automatische Escape-Funktion von Parametern in Python