Olá. O código que usei foi esse abaixo:
def recomendador(nome_musica):
cluster = list(projection_m[projection_m['song'] == nome_musica]['cluster_pca'])[0]
musicas_recomendadas = projection_m[projection_m['cluster_pca'] == cluster][[0, 1, 'song']]
x_musica = list(projection_m[projection_m['song'] == nome_musica][0])[0]
y_musica = list(projection_m[projection_m['song'] == nome_musica][1])[0]
# Distancias euclidianas
distancias = euclidean_distances(musicas_recomendadas[[0, 1]], [[x_musica, y_musica]])
musicas_recomendadas['id'] = dados['id']
musicas_recomendadas['distancias'] = distancias
recomendada = musicas_recomendadas.sort_values('distancias').head(10) # TOP 10
# Acessando os dados de cada música com a biblioteca Spotipy (nome e imagem)
playlist_id = recomendada["id"]
url = []
name = []
for i in playlist_id:
track = sp.track(i)
url.append(track["album"]["images"][1]["url"])
name.append(track["name"])
# Plotando as figuras
plt.figure(figsize=(10,8))
columns = 5
for i, u in enumerate(url):
ax = plt.subplot(len(url) // columns + 1, columns, i + 1)
image = io.imread(u)
plt.imshow(image)
ax.get_yaxis().set_visible(False)
plt.xticks(color = 'w', fontsize = 0.1)
plt.yticks(color = 'w', fontsize = 0.1)
plt.xlabel(name[i], fontsize = 8)
plt.tight_layout(h_pad=0.7, w_pad=0)
plt.subplots_adjust(wspace=None, hspace=None)
plt.tick_params(bottom = False)
plt.grid(visible=None)
plt.show()
O resultado foram imagens com listras cinzas na vertical. Algum parâmetro que possa ajustar isso? Gostaria tambem de deixar as imagens separadas umas das outras. Com as bordas separadas.