joyplot est un complot comme celui-ci dont on a parlé sur Twitter il y a quelque temps.
Cela semble facile à tracer avec le package de R ggjoy. Il ne semblait y avoir rien de similaire en python.
Au fait, la raison pour laquelle joy plot est que la pochette de l'album "Unknown Pleasures" du groupe Joy Division ressemble à celle ci-dessous.
Ainsi, lors de l'utilisation de ce joyplot, il semble poli de tracer en écoutant this. (Est un mensonge)
En regardant ce tracé, j'ai pensé qu'il serait utile pour mettre à jour Bayes et tracer le spectrogramme, donc cette fois je vais essayer le tracé du spectrogramme pour le moment. Utilisez l 'exemple du spectre scipy tel quel.
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)
Je me réfère à ici dans stackoverflow.
y = Sxx.T
#Puisqu'il y en a beaucoup, tranchez-le.
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 #Ce y=Tracer en décalant par delta.
yticks = [] #Pour enregistrer la position des yticks
fig = plt.figure()
ax = fig.add_subplot(111)
for iy in np.arange(ny):
offset = (ny-iy) * y_delta #Tracer de haut en bas
y_value = y[iy] + offset #Décalage par décalage.
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_Tracez la ligne de valeur et peignez en dessous.
yticks.append(offset)
#Le haut de l'intrigue est plus jeune, alors inversez l'ordre.
yticks = yticks[::-1]
ytickslabel = np.arange(len(yticks))[::-1]
ax.set_yticks(yticks)
ax.set_yticklabels(ytickslabel)
ax.set_xlabel("Frequency [Hz]")
plt.show()
Je me sens comme cela.
Pour le rendre beau, vous devez faire quelques ajustements. Vous devez changer autour de
y_delta``` dans le code ci-dessus.
J'ai découvert que joyplot avait été ajouté à l'exemple Seaborn le mois dernier. https://github.com/mwaskom/seaborn/blob/master/examples/kde_joyplot.py
Nous avons également trouvé joypy.
Il serait préférable d'utiliser l'un ou l'autre de ces deux.
Recommended Posts