es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo controlar el formato de fecha para la escala de tiempo d3 y eliminar marcas de tiempo no deseadas?

Estoy tratando de mostrar una semana de datos en un gráfico de áreas, y me gustaría usar scaleTime() para poblar mi eje x. He convertido las cadenas de fecha a objetos de fecha, y el dominio parece ser correcto, pero no puedo conseguir que el eje x muestre el formato que quiero. Lo que me gustaría ver son 7 marcas de tick con el día, mes y año mostrados. En su lugar, estoy viendo el día de la semana y la fecha, y hay marcas de tick adicionales que muestran ’12 PM’, como en la imagen adjunta.

He intentado especificar el número de marcas de tick, pero luego se vuelve aún más extraño, especialmente en las transiciones de mes, y puede mostrar algo como ‘Lun 29, Mar 30, Mié 31, Noviembre, Vie 2’.

En resumen, ¿me estoy perdiendo algo en cómo estoy implementando la escala, y si no, cómo podría afinar las marcas de tick para mostrar solo lo que quiero ver? Los ejemplos que he podido encontrar parecen no encontrarse con los mismos problemas que estoy experimentando.

Formato actual de mis objetos de fecha: “2020-07-22T06:00:00.000Z”

El código:

let x = d3.scaleTime().range([0, width-margin.right-margin.left])
let y = d3.scaleLinear().range([height-margin.bottom, margin.top])
x.domain([d3.min(area_data, d => d.date), d3.max(area_data, d=>d.date)])
y.domain([0, max_cases])
let xAxis = d3.axisBottom(x);
let yAxis = d3.axisLeft(y);

Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que está faltando el método tickFormat() en su código. Puede utilizar este método para especificar el formato de las marcas de las etiquetas en el eje. Por ejemplo, puede utilizar tickFormat(d3.timeFormat("%d %b %Y")) para mostrar el día, mes y año. También puede utilizar ticks(7) para especificar el número de marcas de las etiquetas.

    Para obtener más información, puede consultar la documentación de D3.

Comments are closed.