Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

134
Vistas
Gráfico lineal de la serie dc.js una línea por año

Hola, uso este código para obtener mi línea con un punto para cada mes.

Ahora me gustaría obtener automáticamente una serie para cada año. ¿Cuál es la mejor manera de hacerlo?

 function Dimension() { return Data.ndx.dimension(function (d) { return moment.localeData()._months[d["DATE"].getMonth()]; }); } function Group(thisDim) { var thisVal = thisDim.group().reduceSum(function (d) { return d["VALUE"]; }); return thisVal; } var thisDim = Dimension(); var thisVal = Group(); chartObject.dimension(thisDim).group(thisVal) .title(function (d) { return d.key; }) .label(function (d) { return d.key;}) .margins({top: 10, right: 10, bottom: 30, left: 70}) .elasticY(true) ; chartObject.x(d3.scaleBand().range([0,11])).xUnits(dc.units.ordinal); chartObject.xAxis().tickFormat(function(d) { return moment.localeData()._months[d]; });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Probablemente lo más fácil de hacer es usar el gráfico de series . El gráfico de serie es un atajo para un gráfico compuesto que divide los datos en función de partes de la clave y genera automáticamente un gráfico (línea) para cada valor de acceso de serie.

Requerirá que use una "multiclave" para su dimensión, con año y mes. Utilizará seriesAccessor y keyAccessor para indicarle a dc.js cómo desarmar las teclas múltiples.

Por cierto, la forma en que manejas los meses es más complicada de lo que debería ser. Ahora mismo estás creando la dimensión con nombres de meses como claves.

 moment.localeData()._months[d["DATE"].getMonth()]

Luego, su escala vuelve a convertir esos nombres en números:

 .x(d3.scaleBand().range([0,11]))

En su lugar, sugeriría usar el número de año y mes para su tecla múltiple:

 return Data.ndx.dimension(d => ([d.DATE.getYear(), d.DATE.getMonth()]));

Luego, el resto debe seguir el ejemplo vinculado anteriormente ... pero comente si tiene problemas, ya que estoy omitiendo algunos detalles.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda