Open Business Intelligence

La red del Business Intelligence

Buenos días, tengo la siguiente gráfica

necesito cambiar los colores de la siguiente manera: cuando los valores sean mayores o iguales a cero, color = Verde;  cuando los valores sean menores a cero, color = rojo, de tal forma que quede algo así:

Me podrían ayudar, puede ser algo sencillo, pero no tengo idea de como hacerlo

Nota: la segunta imágen la modifique con paint jaja

Saludos

Etiquetas: Bar Char, colores

Visitas: 2067

Respuestas a esta discusión

Buenas Mario, cómo estás?

Utilizando CCC Bar Chart no se si se puede configurar reglas para los colores de las barras.

Lo que se me ocurre que puedes hacer es crear una caategoría con los valores negativos y otra categoría con los valores positivos. Fijate el siguiente Bar Chart:

Imagina que la categoría "London" representara tus valores negativos y que "Paris" tus valores positivos.

Este ejemplo lo puedes encontrar en la documentación oficial de CCC...

Saludos

Resuelto!!

Después de días de búsqueda encontré la respuesta en un foro de pentaho la verdad es muy sencillo, solo hay que agregar un código javascript.

En las propiedades avanzadas del chart component existe una llamada Pre Execution y otra Post Fetch, en cualquiera de estas dos propiedades se agrega el siguiente código:

function changeBars(){
var cccOptions = this.chartDefinition;
// For changing extension points, a little more work is required:
var eps = Dashboards.propertiesArrayToObject(cccOptions.extensionPoints);
// add extension points:
eps.bar_fillStyle = function getColor(){
var val = this.scene.vars.value.value;

if(val >= 0){
return 'green';
}
else if(val < 0){
return 'red';
}
else{
return 'black';
}
};
// Serialize back eps into cccOptions
cccOptions.extensionPoints = Dashboards.objectToPropertiesArray(eps);
}

dando como resultado los colores deseados (+ en verde, - en rojo)

también la he usado en otras graficas con los siguientes rangos:

if((val > 0 && val < 90)||(val >= 110)){
return 'red';
}
else if((val >= 90 && val < 95)||(val >= 105 && val<110)){
return 'yellow';
}
else if(val > 95 && val < 105){
return 'green';
}

 Espero que les ayude si en algún momento lo llegan a necesitar.

Saludos a todos

Excelente!

Gracias por compartir la solución.

Saludos

RSS

Distintivo

Cargando…

© 2024   Creado por Emilio.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio