1
resposta

Imagem com listras cinzas

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.

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oii, Alberto! Tudo bem?

Problemas com a URL da imagem, como arquivo indisponível, caminho errado e dentre outras, podem retornar listras cinzas e bug no código. Como sugestão, recomendo verificar esses pontos de cada imagem.

A separação de imagem, sugiro tentar ajustar o espaçamento entre as subplots na função subplots_adjust() do seu código. Você está passando como None em ambas, adicione alguma métrica de espaço como, por exemplo:

 plt.subplots_adjust(wspace=0.5, hspace=0.5)

Espero que as sugestões te ajude! Qualquer dúvida, conte conosco.

Bons estudos, Alberto!