Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

115
Visualizações
Leer números de una matriz en javascript y trazarlos usando plotly

Estoy tratando de crear una interfaz que le permita a un usuario cargar archivos CSV y trazarlos usando plotly, solo usando javascript y obviamente la biblioteca plotly. Estoy cerca, pero mi sospecha es que hay un problema con la lectura asincrónica de los archivos csv. Como probablemente pueda ver, soy relativamente nuevo en javascript, por lo que cualquier comentario es bienvenido. Sin embargo, no puedo usar ninguna otra biblioteca o paquete de forma gráfica.

El problema es que la figura resultante solo muestra los valores inicializados (1).

EDITAR: la función de mapa de calor funciona en datos de prueba, o si modifico elementos específicos del objeto data_y , pero no cuando actualizo la información del archivo.

  1. Hay un botón que permite cargar los archivos csv. En caso de que este código se active:
 <script> let picker = document.getElementById('picker'); picker.addEventListener('change', event => {0 file_list = event.target.files; var fig_y = []; for (let i = 0 ; i< file_list.length ; i++){ if(file_list[i].name == (".DS_Store")){continue} else { var ready = read_data(file_list[i]); fig_y.push(ready); } } console.log(fig_y); plot_heatmap(fig_y); } ); </script>
  1. Los datos se leen usando este código.
 <script> function read_data(input){ var xs = 1212; // length of the data file_contents = []; var data_y = Array(xs).fill(1); let file = input; let reader = new FileReader(); reader.readAsText(file); reader.onload = function(){ file_contents = reader.result.split('\n'); // open the data file. First two lines contain a description of the data. for (let j = 2 ; j<file_contents.length-1 ; j++) { // the relevant data is the third number in the column var nr = file_contents[j].split(",").map(Number)[2]; data_y[j-2] = nr; } } return data_y; } </script>
  1. el código que hace el mapa de calor plotly.
 <script> function plot_heatmap(data_z){ var data = [ { z: data_z, type: 'heatmap' } ]; Plotly.newPlot('raw_data', data); }; </script>
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

OK, así que descubrí la respuesta. Proviene de la lectura asincrónica de los archivos de texto. Poner la función plot_heatmap en la siguiente función Timeout resolvió el problema (bueno, tal vez sea más una solución).

setTimeout(() => { plot_heatmap(fig_y); }, 100);

En realidad, al cambiar la duración del tiempo de espera, pude atrapar a JS en su acto y ver la mitad del mapa de calor lleno con los valores reales y la otra mitad aún con el valor inicializado.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda