feat: support bar margin
This commit is contained in:
parent
32e6dd52d0
commit
e7dc4189d5
4 changed files with 20 additions and 4 deletions
|
|
@ -23,6 +23,7 @@
|
|||
package charts
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
|
||||
"github.com/golang/freetype/truetype"
|
||||
|
|
@ -63,6 +64,8 @@ type BarChartOption struct {
|
|||
// The legend option
|
||||
Legend LegendOption
|
||||
BarWidth int
|
||||
// Margin of bar
|
||||
BarMargin int
|
||||
}
|
||||
|
||||
func (b *barChart) render(result *defaultRenderResult, seriesList SeriesList) (Box, error) {
|
||||
|
|
@ -88,6 +91,10 @@ func (b *barChart) render(result *defaultRenderResult, seriesList SeriesList) (B
|
|||
margin = 5
|
||||
barMargin = 3
|
||||
}
|
||||
if opt.BarMargin > 0 {
|
||||
barMargin = opt.BarMargin
|
||||
}
|
||||
fmt.Println(barMargin)
|
||||
seriesCount := len(seriesList)
|
||||
// 总的宽度-两个margin-(总数-1)的barMargin
|
||||
barWidth := (width - 2*margin - barMargin*(seriesCount-1)) / seriesCount
|
||||
|
|
|
|||
|
|
@ -67,6 +67,8 @@ type ChartOption struct {
|
|||
LineStrokeWidth float64
|
||||
// The bar with of bar chart
|
||||
BarWidth int
|
||||
// The margin of each bar
|
||||
BarMargin int
|
||||
// The bar height of horizontal bar chart
|
||||
BarHeight int
|
||||
// Fill the area of line chart
|
||||
|
|
|
|||
|
|
@ -379,6 +379,7 @@ func Render(opt ChartOption, opts ...OptionFunc) (*Painter, error) {
|
|||
Font: opt.font,
|
||||
XAxis: opt.XAxis,
|
||||
BarWidth: opt.BarWidth,
|
||||
BarMargin: opt.BarMargin,
|
||||
}).render(renderResult, barSeriesList)
|
||||
return err
|
||||
})
|
||||
|
|
@ -391,6 +392,7 @@ func Render(opt ChartOption, opts ...OptionFunc) (*Painter, error) {
|
|||
Theme: opt.theme,
|
||||
Font: opt.font,
|
||||
BarHeight: opt.BarHeight,
|
||||
BarMargin: opt.BarMargin,
|
||||
YAxisOptions: opt.YAxisOptions,
|
||||
}).render(renderResult, horizontalBarSeriesList)
|
||||
return err
|
||||
|
|
|
|||
|
|
@ -50,6 +50,8 @@ type HorizontalBarChartOption struct {
|
|||
// The legend option
|
||||
Legend LegendOption
|
||||
BarHeight int
|
||||
// Margin of bar
|
||||
BarMargin int
|
||||
}
|
||||
|
||||
// NewHorizontalBarChart returns a horizontal bar chart renderer
|
||||
|
|
@ -81,6 +83,9 @@ func (h *horizontalBarChart) render(result *defaultRenderResult, seriesList Seri
|
|||
margin = 5
|
||||
barMargin = 3
|
||||
}
|
||||
if opt.BarMargin > 0 {
|
||||
barMargin = opt.BarMargin
|
||||
}
|
||||
seriesCount := len(seriesList)
|
||||
// 总的高度-两个margin-(总数-1)的barMargin
|
||||
barHeight := (height - 2*margin - barMargin*(seriesCount-1)) / seriesCount
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue