flutter_sparkline icon indicating copy to clipboard operation
flutter_sparkline copied to clipboard

[Bug] Exact same data produces no graph

Open TheNewJavaman opened this issue 6 years ago • 10 comments

If that data List is all the same value (ie [0.0, 0.0, 0.0], the graph doesn't show up instead of, say, having just a horizontal line.

TheNewJavaman avatar Jan 01 '19 23:01 TheNewJavaman

If you set a fixed _max and _min, this gets fixed.

TheNewJavaman avatar Jan 03 '19 06:01 TheNewJavaman

I'm waiting for the correction of this bug ... can you correct this ?

sverdy avatar May 19 '19 20:05 sverdy

Same issues please find a solution... I just want a flat line if all my data are [0.0]. Thank you

nitneuq33 avatar May 22 '19 08:05 nitneuq33

Hey, this is kinda a major issue :( Any timeline on a fix?

Issues is line 300 final double heightNormalizer = height / (_max - _min);

Can be fixed with a change to final double heightNormalizer = height / max(1,(_max - _min));

raphael-bmec-co avatar Jun 08 '20 11:06 raphael-bmec-co

IIRC one of my repositories (pc-monitor) has a fixed version of this module. If you give me a day or two I can fork this repo and post the new source.

TheNewJavaman avatar Jun 08 '20 14:06 TheNewJavaman

Thanks I actually saw that after posting. I have made some other changes to so that single value lines also plot to the center of the chart instead of the bottom.

    if(_min == _max){
      if(_min == 0){
        _min = -1;
        _max = 1;
      } else {
        _min = _max/2;
        _max = _max*2;
      }
    }

How does your fix handle that case?

raphael-bmec-co avatar Jun 08 '20 14:06 raphael-bmec-co

For my project it actually made sense for the line to be at the bottom (null value from API => 0/bottom on graph). Not an issue if you want to start a pull request for the middle line, just maybe include it as a parameter for the graph?

Side note: my code was very hacky and poorly written; would you rather look over my repo and then write your own additional code?

TheNewJavaman avatar Jun 08 '20 16:06 TheNewJavaman

Ah shit. I had a hard drive go bad about 8 months ago, and I seem to have lost the updated repository that contained my fixes; unfortunately, it looks like I also forgot to push my commits to the online repo. I don't remember how I fixed the problem, but here's some pseudo-code to describe what I may have done, based on my comment above:

if all_datapoints in line == 0.0:
    let min = 0
    let max = 1

or, more relevant to your solution:

if all_datapoints in line == 0.0:
    let min = -1
    let max = 1

and then update the graph with these new boundaries. Doesn't seem too complicated, it's pretty much the same solution you said earlier.

TheNewJavaman avatar Jun 08 '20 16:06 TheNewJavaman

No worries. Looks like we implemented similar solutions and I expect I will be expanding the functionality for my application.

Thanks again!

raphael-bmec-co avatar Jun 09 '20 09:06 raphael-bmec-co

Hey, this is kinda a major issue :( Any timeline on a fix?

Issues is line 300 final double heightNormalizer = height / (_max - _min);

Can be fixed with a change to final double heightNormalizer = height / max(1,(_max - _min));

Hi, I tried this but it didn't work for me. Graph still doesn't plot.

Edit: Apologies it does work. Just forgot to import dart:math. Thanks for the help!

martin4951 avatar Jul 13 '22 12:07 martin4951