Estoy tratando de reemplazar el número entero del día de la semana por sus nombres correspondientes.
var y_label = [...new Set(data.map((item) => item.y))].sort(d3.descending); // [0 - 6] // Build Y scales and axis: const y = d3.scaleBand().range([height, 0]).domain(y_label).padding(0.01); svg.append("g").call(d3.axisLeft(y)); Ahora estoy agregando .tickFormat(d3.timeFormat("%A"))
var y_label = [...new Set(data.map((item) => item.y))].sort(d3.descending); // [0 - 6] // Build Y scales and axis: const y = d3.scaleBand().range([height, 0]).domain(y_label).padding(0.01); svg.append("g").call(d3.axisLeft(y).tickFormat(d3.timeFormat("%A")));Lo que obtengo es esto:
Ni siquiera sé de dónde viene el jueves. ¿Cómo arreglo mi código?
Cuando construye un objeto Date a partir de un número, toma el valor como número de milisegundos desde el 1 de enero de 1970 a las 00:00 (jueves). Por lo tanto, cualquier número del 0 al 6 se interpreta como el comienzo de ese día. No use d3.timeFormat . En su lugar, simplemente defina:
const weekDays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; ....call(d3.axisLeft(y).tickFormat(d => weekDays[dy]);