imshow: rótulos como qualquer função arbitrária dos índices de imagem

imshow plota uma matriz contra seus índices de coluna (eixo x) e índices de linha (eixo y). Eu gostaria que os rótulos dos eixos não fossem índices, mas uma função arbitrária dos índices.

por exemplo. detecção de pitch

imshow(A, aspect='auto') OndeA.shape == (88200,8)

no eixo x, mostra vários carrapatos por volta[11000, 22000, ..., 88000] no eixo y, mostra a caixa de frequência[0,1,2,3,4,5,6,7]

O que eu quero é:

rotulagem do eixo x são normalizadas de amostras para segundos. Para um áudio de 2 segundos a uma taxa de amostragem de 44,1kHz, eu quero dois carrapatos[1,2].

rotulagem do eixo y é o tom como uma nota. Eu quero as etiquetas na nota do campo['c', 'd', 'e', 'f', 'g', 'a', 'b'].

idealmente:

imshow(A, ylabel=lambda i: freqs[i], xlabel=lambda j: j/44100)

questionAnswers(1)

yourAnswerToTheQuestion