Estoy tratando de hacer que este gráfico funcione.
EChart Sandbox: gráfico de cascada
Y este el código ruby para elaborar mis datos.
data = [ 500, 100, -1000, 300, 500] positive_values = [] negative_values = [] data.each_with_index do |value, index| if value.negative? positive_values << "-" negative_values << value.abs else positive_values << value negative_values << "-" end end base_values = [] data.each_with_index do |value, index| base_values << 0 && next if index == 0 base = base_values[index-1] base -= value.abs.to_f if value.negative? base += data[index-1].to_f if data[index-1].positive? base_values << base.round(2) end return { base_values: base_values, positive_values: positive_values, negative_values: negative_values }Ahora este código funciona perfectamente bien mientras tienes valores positivos.
Pero cuando comienza a tener, como el código anterior, números negativos que van por debajo de 0, el algoritmo no funciona y no puedo entender la forma de solucionarlo.
El gráfico esperado que estoy tratando de obtener con los datos mencionados anteriormente es el siguiente.