From 2aa38220222681c28c181908a333f8049948fbb7 Mon Sep 17 00:00:00 2001
From: david <d.mis09@gmail.com>
Date: Fri, 13 Jul 2018 20:44:09 -0500
Subject: [PATCH] Added BaseValue funtionality to bar chart

---
 _examples/bar_chart_base_value/main.go    |  88 ++++++++++++++++++++++
 _examples/bar_chart_base_value/output.png | Bin 0 -> 18491 bytes
 bar_chart.go                              |  22 ++++--
 3 files changed, 105 insertions(+), 5 deletions(-)
 create mode 100644 _examples/bar_chart_base_value/main.go
 create mode 100644 _examples/bar_chart_base_value/output.png

diff --git a/_examples/bar_chart_base_value/main.go b/_examples/bar_chart_base_value/main.go
new file mode 100644
index 0000000..1874f0b
--- /dev/null
+++ b/_examples/bar_chart_base_value/main.go
@@ -0,0 +1,88 @@
+package main
+
+import (
+	"fmt"
+	"log"
+	"net/http"
+	"os"
+
+	"github.com/wcharczuk/go-chart"
+	"github.com/wcharczuk/go-chart/drawing"
+)
+
+func drawChart(res http.ResponseWriter, req *http.Request) {
+	profitStyle := chart.Style{
+		Show:        true,
+		FillColor:   drawing.ColorFromHex("13c158"),
+		StrokeColor: drawing.ColorFromHex("13c158"),
+		StrokeWidth: 0,
+	}
+
+	lossStyle := chart.Style{
+		Show:        true,
+		FillColor:   drawing.ColorFromHex("c11313"),
+		StrokeColor: drawing.ColorFromHex("c11313"),
+		StrokeWidth: 0,
+	}
+
+	sbc := chart.BarChart{
+		Title:      "Bar Chart Using BaseValue",
+		TitleStyle: chart.StyleShow(),
+		Background: chart.Style{
+			Padding: chart.Box{
+				Top: 40,
+			},
+		},
+		Height:   512,
+		BarWidth: 60,
+		XAxis: chart.Style{
+			Show: true,
+		},
+		YAxis: chart.YAxis{
+			Style: chart.Style{
+				Show: true,
+			},
+			Ticks: []chart.Tick{
+				{-4.0, "-4"},
+				{-2.0, "-2"},
+				{0, "0"},
+				{2.0, "2"},
+				{4.0, "4"},
+				{6.0, "6"},
+				{8.0, "8"},
+				{10.0, "10"},
+				{12.0, "12"},
+			},
+		},
+		UseBaseValue: true,
+		BaseValue:    0.0,
+		Bars: []chart.Value{
+			{Value: 10.0, Style: profitStyle, Label: "Profit"},
+			{Value: 12.0, Style: profitStyle, Label: "More Profit"},
+			{Value: 8.0, Style: profitStyle, Label: "Still Profit"},
+			{Value: -4.0, Style: lossStyle, Label: "Loss!"},
+			{Value: 3.0, Style: profitStyle, Label: "Phew Ok"},
+			{Value: -2.0, Style: lossStyle, Label: "Oh No!"},
+		},
+	}
+
+	res.Header().Set("Content-Type", "image/png")
+	err := sbc.Render(chart.PNG, res)
+	if err != nil {
+		fmt.Printf("Error rendering chart: %v\n", err)
+	}
+}
+
+func port() string {
+	if len(os.Getenv("PORT")) > 0 {
+		return os.Getenv("PORT")
+	}
+	return "8080"
+}
+
+func main() {
+	listenPort := fmt.Sprintf(":%s", port())
+	fmt.Printf("Listening on %s\n", listenPort)
+	http.HandleFunc("/", drawChart)
+	log.Fatal(http.ListenAndServe(listenPort, nil))
+}
diff --git a/_examples/bar_chart_base_value/output.png b/_examples/bar_chart_base_value/output.png
new file mode 100644
index 0000000000000000000000000000000000000000..94231c8515f1e847e9fd3afe7a2271189cf82d00
GIT binary patch
literal 18491
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

literal 0
HcmV?d00001

diff --git a/bar_chart.go b/bar_chart.go
index 0c24d92..45ddcc7 100644
--- a/bar_chart.go
+++ b/bar_chart.go
@@ -31,6 +31,9 @@ type BarChart struct {
 
 	BarSpacing int
 
+	UseBaseValue bool
+	BaseValue    float64
+
 	Font        *truetype.Font
 	defaultFont *truetype.Font
 
@@ -199,11 +202,20 @@ func (bc BarChart) drawBars(r Renderer, canvasBox Box, yr Range) {
 
 		by = canvasBox.Bottom - yr.Translate(bar.Value)
 
-		barBox = Box{
-			Top:    by,
-			Left:   bxl,
-			Right:  bxr,
-			Bottom: canvasBox.Bottom,
+		if bc.UseBaseValue {
+			barBox = Box{
+				Top:    by,
+				Left:   bxl,
+				Right:  bxr,
+				Bottom: canvasBox.Bottom - yr.Translate(bc.BaseValue),
+			}
+		} else {
+			barBox = Box{
+				Top:    by,
+				Left:   bxl,
+				Right:  bxr,
+				Bottom: canvasBox.Bottom,
+			}
 		}
 
 		Draw.Box(r, barBox, bar.Style.InheritFrom(bc.styleDefaultsBar(index)))