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.
Wenn Sie diesen Joyplot verwenden, erscheint es höflich, beim Anhören von this zu zeichnen. (Ist eine Lüge)
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)
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()
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.
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
Wir haben auch [joypy] gefunden (https://github.com/sbebo/joypy).
Es wäre besser, eine dieser beiden zu verwenden.
Recommended Posts