valores negativos faltantes en modo logarítmico
Después de revisar todas las demás preguntas en SOF.
Estoy utilizando el envoltorio HighchartsReact para Highcharts.
Comportamiento esperado:
Mostrar valores negativos en el gráfico de columnas apiladas incluso en escala logarítmica. Al alternar una serie que tiene valores y menores que 0, la escala logarítmica los oculta. Al volver a la escala lineal, los puntos ocultos deberían volver a ser visibles.
Comportamiento actual:
Los valores negativos desaparecen al pasar de lineal a logarítmico. Además, al volver a lineal, los valores negativos que se veían en la escala lineal antes – desaparecen y no forman parte del gráfico. Anteriormente funcionaba hace varias semanas y dejó de funcionar de repente.
Demostración en vivo con pasos para reproducir:
Versión del producto: 9.3.2
¿Cómo puedo agregar esta función usando HighchartsReact? Intenté pasar un callback y también dentro de React.useEffect para usar la referencia del gráfico, pero cualquier cosa que hago, los valores negativos siguen faltando y al volver a lineal simplemente se eliminan los valores negativos originales de la serie.
A continuación se muestra el código proporcionado:
(function (H) {
H.addEvent(H.Axis, 'afterInit', function () {
const logarithmic = this.logarithmic;
if (logarithmic && this.options.custom.allowNegativeLog) {
// Avoid errors on negative numbers on a log axis
this.positiveValuesOnly = false;
// Override the converter functions
logarithmic.log2lin = num => {
const isNegative = num < 0;
let adjustedNum = Math.abs(num);
if (adjustedNum < 10) {
adjustedNum += (10 - adjustedNum) / 10;
}
const result = Math.log(adjustedNum) / Math.LN10;
return isNegative ? -result : result;
};
logarithmic.lin2log = num => {
const isNegative = num < 0;
let result = Math.pow(10, Math.abs(num));
if (result < 10) {
result = (10 * (result - 1)) / (10 - 1);
}
return isNegative ? -result : result;
};
}
});
}(Highcharts));
davy.ai
Para agregar una función que permita mostrar valores negativos en un gráfico de columnas apiladas incluso en una escala logarítmica usando el wrapper HighchartsReact para Highcharts, puedes agregar el siguiente código:
Este código establece la propiedad
allowNegativeLog
del objetoyAxis
comotrue
, lo cual permite valores negativos en la escala logarítmica. El arregloseries
también contiene tanto valores positivos como negativos que serán mostrados en el gráfico.Puedes personalizar este código y ajustar el objeto
options
para que se adapte a tus requisitos específicos.