Problem with negative values for barchart
I am having problem displaying barchart with negative values.
I tried to see if anyone has already reported this issue. But judging from https://github.com/mindok/contex/issues/91 it seems negative values is supported all along.
I'm using Contex version 0.5.0
Code
data = [
["A", -10.0],
["B", 20.0],
["C", -50.0]
]
dataset = Contex.Dataset.new(data, ["X", "Y"])
options = [
mapping: %{category_col: "X", value_cols: ["Y"]},
type: :stacked,
data_labels: true,
orientation: :vertical
]
chart =
Contex.Plot.new(dataset, Contex.BarChart, 600, 400, options)
|> Contex.Plot.titles("", "")
|> Contex.Plot.axis_labels("", "")
|> Contex.Plot.plot_options(%{})
|> Contex.Plot.to_svg()
Result
Hi,
you are using the type: :stacked. I think if you are using the type: :grouped your chart would look like the ones in issue #91
For stacked bar charts negative numbers would be more complicated.
I think currently stacked charts use deltas. so the second bar of the same category starts at the end of the first bar. If there would be something like :stacked_absolute that would
- accept absolute values rather than deltas
- draw all bars originating from 0 rather than the end of the last bar
- draw the largest bar first so that smaller ones aren't completely hidden
one could display negative numbers similar to #91, but stacked.
I actually have a use case for that myself, I will give it a shot to implement that.