From af5d06d415b0a772490bd1564ee32671a6afae67 Mon Sep 17 00:00:00 2001 From: sqshq Date: Mon, 1 Jul 2019 02:07:39 -0400 Subject: [PATCH] sparkline visualization improvements --- component/sparkline/sparkline.go | 23 ++++++++++++----------- go.mod | 2 +- go.sum | 2 ++ 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/component/sparkline/sparkline.go b/component/sparkline/sparkline.go index f65f5a2..62ef153 100644 --- a/component/sparkline/sparkline.go +++ b/component/sparkline/sparkline.go @@ -117,20 +117,21 @@ func (s *SparkLine) Draw(buffer *ui.Buffer) { break } - top := int((s.values[i] / s.maxValue) * float64(height)) + top := 0 - if top == 0 { - top = 1 + if s.maxValue != s.minValue { + top = int((s.values[i] - s.minValue) * float64(height) / (s.maxValue - s.minValue)) } - for j := 1; j <= top; j++ { - buffer.SetCell(ui.NewCell(console.SymbolVerticalBar, ui.NewStyle(console.GetGradientColor(s.gradient, j-1, height))), image.Pt(s.Inner.Max.X-n-indent, s.Inner.Max.Y-j)) - if i == len(s.values)-1 && j == top { - buffer.SetString(curValue, textStyle, image.Pt(s.Inner.Max.X-n-indent+2, s.Inner.Max.Y-j)) - if s.maxValue != s.minValue { - buffer.SetString(minValue, textStyle, image.Pt(s.Inner.Max.X-n-indent+2, s.Max.Y-2)) - buffer.SetString(maxValue, textStyle, image.Pt(s.Inner.Max.X-n-indent+2, s.Min.Y+1)) - } + for j := 0; j <= top; j++ { + buffer.SetCell(ui.NewCell(console.SymbolVerticalBar, ui.NewStyle(console.GetGradientColor(s.gradient, j, height))), image.Pt(s.Inner.Max.X-n-indent, s.Inner.Max.Y-j-1)) + } + + if i == len(s.values)-1 { + buffer.SetString(curValue, textStyle, image.Pt(s.Inner.Max.X-n-indent+2, s.Inner.Max.Y-top-1)) + if s.maxValue != s.minValue { + buffer.SetString(minValue, textStyle, image.Pt(s.Inner.Max.X-n-indent+2, s.Max.Y-2)) + buffer.SetString(maxValue, textStyle, image.Pt(s.Inner.Max.X-n-indent+2, s.Min.Y+1)) } } } diff --git a/go.mod b/go.mod index 24149c2..a970f44 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ require ( github.com/hajimehoshi/go-mp3 v0.1.1 github.com/hajimehoshi/oto v0.1.1 github.com/jessevdk/go-flags v1.4.0 - github.com/kr/pty v1.1.4 + github.com/kr/pty v1.1.5 github.com/lunixbochs/vtclean v1.0.0 github.com/mattn/go-runewidth v0.0.4 github.com/mbndr/figlet4go v0.0.0-20190224160619-d6cef5b186ea diff --git a/go.sum b/go.sum index fd537ba..49d7e5d 100644 --- a/go.sum +++ b/go.sum @@ -14,6 +14,8 @@ github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGAR github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/kr/pty v1.1.4 h1:5Myjjh3JY/NaAi4IsUbHADytDyl1VE1Y9PXDlL+P/VQ= github.com/kr/pty v1.1.4/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.5 h1:hyz3dwM5QLc1Rfoz4FuWJQG5BN7tc6K1MndAUnGpQr4= +github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/lunixbochs/vtclean v1.0.0 h1:xu2sLAri4lGiovBDQKxl5mrXyESr3gUr5m5SM5+LVb8= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=