2011-12-22 29 views
6

Quiero mostrar el texto de la etiqueta en lugar del total del segmento para cada etiqueta.JQPlot barra apilada cada recuento de etiquetas apiladas en lugar de recuento de acumulación (incremental)

Me gusta, 2, 7, 14 debe estar en barra apilada con 2, 7, 14 y luego 23 es un total. Pero actualmente en el ejemplo está mostrando el total del segmento - la primera barra está vacía y luego 2, 2 + 7 = 9, y total = 23 (9 + 14).

JQ gráfico muestra (barras apiladas gráfico de la columna - 3ª gráfico): http://www.jqplot.com/tests/bar-charts.php

quiero como este URL como highchart para el sello contar véase el ejemplo: http://www.highcharts.com/demo/column-stacked

Por favor, hágamelo saber si puedo ir con la solución, entonces sería de gran ayuda ...

Respuesta

6

Tengo una solución, ya que parece que, independientemente del valor del parámetro stackedValue, los valores de las barras apiladas siempre se suman.

Mi solución a este problema implicado:

  • adición de uno más series que sirve como la suma, los valores que se llenan con son todos iguales (es decir, 3) como su única función es la de posición las etiquetas,

  • hacer la última serie (quinto) invisible y su sombra casi transparente,

  • y el uso de las etiquetas de cada serie directamente en lugar de dejar que el guión decidir qué poner allí, de lo contrario, WOU Obviamente, resume los valores.

My solution could be found here.


EDITAR

I have recently spotted that there already was a solution for this problem available here.

+0

Sí, parece resuelto. –

0

Para mostrar los valores dentro de la barra solo modifica la propiedad css .jqplot-point-label en la página local, esto funciona en la página de demostración de JQPlot:

.jqplot-point-label { 
     font-size:.75em; 
     z-index: 2; 
     /* Add some margin to get values into the bar */ 
     margin-top: 24px; 
} 

También puede probar PointLabel propiedades como ypadding para un enfoque más educado. Para las características de suma, consulte este solved thread.

1

Sobre el problema de la suma: te has topado con un error jqplot.

Si vamos a abrir jqplot.pointLabels.js, echar un vistazo a la línea de código que empieza alrededor de 172/173:

var d = this._plotData; 

Si va a actualizar para leer

var d = this._plotData; 
if (p.stackSeries) { 
    var d = this.data; 
} 

cuando se llama a la tabla, usar algo similar a esto en las opciones de la serie:

pointLabels: { show: true, stackedValue: false, stackSeries: true } 

usted será capaz de utilizar el Poi ntLabels stackedValue atributo para desactivar la suma apilada.

La corrección para el error stackedValue se detalla here.

jmva respondió a su pregunta sobre la colocación de etiquetas.

0

solución de Boro funciona para mí, sin embargo, si necesita la leyenda, que tendrá un elemento más en la leyenda que puede no ser lo que esperas He usado la solución de Boro y tengo la leyenda independiente del objeto jqplot.