go-chart/defaults.go

151 lines
5.7 KiB
Go
Raw Normal View History

2016-07-07 03:54:00 +02:00
package chart
import (
"sync"
"github.com/golang/freetype/truetype"
2016-07-09 20:23:35 +02:00
"github.com/wcharczuk/go-chart/drawing"
2016-07-07 03:54:00 +02:00
)
const (
// DefaultChartHeight is the default chart height.
DefaultChartHeight = 400
// DefaultChartWidth is the default chart width.
DefaultChartWidth = 200
2016-07-08 02:50:16 +02:00
// DefaultStrokeWidth is the default chart line/stroke width.
DefaultStrokeWidth = 1.0
2016-07-07 04:04:21 +02:00
// DefaultAxisLineWidth is the line width of the axis lines.
DefaultAxisLineWidth = 1.0
2016-07-07 03:54:00 +02:00
//DefaultDPI is the default dots per inch for the chart.
2016-07-09 02:57:14 +02:00
DefaultDPI = 92.0
2016-07-07 03:54:00 +02:00
// DefaultMinimumFontSize is the default minimum font size.
DefaultMinimumFontSize = 8.0
2016-07-07 23:44:03 +02:00
// DefaultFontSize is the default font size.
DefaultFontSize = 10.0
// DefaultTitleFontSize is the default title font size.
DefaultTitleFontSize = 18.0
2016-07-10 05:14:11 +02:00
// DefaultAnnotationDeltaWidth is the width of the left triangle out of annotations.
DefaultAnnotationDeltaWidth = 10
// DefaultAnnotationFontSize is the font size of annotations.
DefaultAnnotationFontSize = 10.0
2016-07-08 05:26:07 +02:00
// DefaultAxisFontSize is the font size of the axis labels.
DefaultAxisFontSize = 10.0
// DefaultTitleTop is the default distance from the top of the chart to put the title.
DefaultTitleTop = 10
2016-07-10 19:43:04 +02:00
2016-07-10 05:14:11 +02:00
// DefaultYAxisMargin is the default distance from the right of the canvas to the y axis labels.
2016-07-10 19:43:04 +02:00
DefaultYAxisMargin = 10
2016-07-08 05:26:07 +02:00
// DefaultXAxisMargin is the default distance from bottom of the canvas to the x axis labels.
DefaultXAxisMargin = 10
2016-07-10 19:43:04 +02:00
2016-07-12 03:48:51 +02:00
//DefaultVerticalTickHeight is half the margin.
DefaultVerticalTickHeight = DefaultXAxisMargin >> 1
2016-07-10 19:43:04 +02:00
//DefaultHorizontalTickWidth is half the margin.
2016-07-12 03:48:51 +02:00
DefaultHorizontalTickWidth = DefaultYAxisMargin >> 1
2016-07-13 20:50:22 +02:00
// DefaultTickCount is the default number of ticks to show
2016-07-12 03:48:51 +02:00
DefaultTickCount = 10
2016-07-13 20:50:22 +02:00
// DefaultTickCountSanityCheck is a hard limit on number of ticks to prevent infinite loops.
DefaultTickCountSanityCheck = 1 << 10 //1024
2016-07-10 19:43:04 +02:00
2016-07-08 05:26:07 +02:00
// DefaultMinimumTickHorizontalSpacing is the minimum distance between horizontal ticks.
DefaultMinimumTickHorizontalSpacing = 20
// DefaultMinimumTickVerticalSpacing is the minimum distance between vertical ticks.
DefaultMinimumTickVerticalSpacing = 20
2016-07-10 19:43:04 +02:00
2016-07-08 02:50:16 +02:00
// DefaultDateFormat is the default date format.
DefaultDateFormat = "2006-01-02"
2016-07-14 20:17:57 +02:00
// DefaultDateHourFormat is the date format for hour timestamp formats.
2016-07-14 20:36:47 +02:00
DefaultDateHourFormat = "01-02 3PM"
2016-07-14 20:17:57 +02:00
// DefaultFloatFormat is the default float format.
DefaultFloatFormat = "%.2f"
2016-07-14 20:21:41 +02:00
// DefaultPercentValueFormat is the default percent format.
DefaultPercentValueFormat = "%0.2f%%"
)
2016-07-07 03:54:00 +02:00
var (
// DefaultBackgroundColor is the default chart background color.
// It is equivalent to css color:white.
2016-07-09 20:23:35 +02:00
DefaultBackgroundColor = drawing.Color{R: 255, G: 255, B: 255, A: 255}
// DefaultBackgroundStrokeColor is the default chart border color.
// It is equivalent to color:white.
2016-07-09 20:23:35 +02:00
DefaultBackgroundStrokeColor = drawing.Color{R: 255, G: 255, B: 255, A: 255}
2016-07-07 03:54:00 +02:00
// DefaultCanvasColor is the default chart canvas color.
// It is equivalent to css color:white.
2016-07-09 20:23:35 +02:00
DefaultCanvasColor = drawing.Color{R: 255, G: 255, B: 255, A: 255}
2016-07-14 20:17:57 +02:00
// DefaultCanvasStrokeColor is the default chart canvas stroke color.
// It is equivalent to css color:white.
DefaultCanvasStrokeColor = drawing.Color{R: 255, G: 255, B: 255, A: 255}
2016-07-07 03:54:00 +02:00
// DefaultTextColor is the default chart text color.
// It is equivalent to #333333.
2016-07-09 20:23:35 +02:00
DefaultTextColor = drawing.Color{R: 51, G: 51, B: 51, A: 255}
2016-07-07 03:54:00 +02:00
// DefaultAxisColor is the default chart axis line color.
// It is equivalent to #333333.
2016-07-09 20:23:35 +02:00
DefaultAxisColor = drawing.Color{R: 51, G: 51, B: 51, A: 255}
// DefaultStrokeColor is the default chart border color.
2016-07-07 03:54:00 +02:00
// It is equivalent to #efefef.
2016-07-09 20:23:35 +02:00
DefaultStrokeColor = drawing.Color{R: 239, G: 239, B: 239, A: 255}
2016-07-07 03:54:00 +02:00
// DefaultFillColor is the default fill color.
// It is equivalent to #0074d9.
2016-07-09 20:23:35 +02:00
DefaultFillColor = drawing.Color{R: 0, G: 217, B: 116, A: 255}
2016-07-10 05:14:11 +02:00
// DefaultAnnotationFillColor is the default annotation background color.
DefaultAnnotationFillColor = drawing.Color{R: 255, G: 255, B: 255, A: 255}
2016-07-13 04:14:14 +02:00
// DefaultGridLineColor is the default grid line color.
DefaultGridLineColor = drawing.Color{R: 239, G: 239, B: 239, A: 255}
2016-07-07 03:54:00 +02:00
)
2016-07-07 23:44:03 +02:00
var (
2016-07-08 02:50:16 +02:00
// DefaultSeriesStrokeColors are a couple default series colors.
2016-07-09 20:23:35 +02:00
DefaultSeriesStrokeColors = []drawing.Color{
2016-07-15 22:42:04 +02:00
{R: 0, G: 116, B: 217, A: 255},
{R: 0, G: 217, B: 116, A: 255},
{R: 217, G: 0, B: 116, A: 255},
2016-07-08 02:50:16 +02:00
}
)
2016-07-12 03:48:51 +02:00
var (
// DashArrayDots is a dash array that represents '....' style stroke dashes.
DashArrayDots = []int{1, 1}
// DashArrayDashesSmall is a dash array that represents '- - -' style stroke dashes.
DashArrayDashesSmall = []int{3, 3}
// DashArrayDashesMedium is a dash array that represents '-- -- --' style stroke dashes.
DashArrayDashesMedium = []int{5, 5}
// DashArrayDashesLarge is a dash array that represents '----- ----- -----' style stroke dashes.
DashArrayDashesLarge = []int{10, 10}
)
2016-07-08 02:50:16 +02:00
// GetDefaultSeriesStrokeColor returns a color from the default list by index.
// NOTE: the index will wrap around (using a modulo).g
2016-07-09 20:23:35 +02:00
func GetDefaultSeriesStrokeColor(index int) drawing.Color {
2016-07-08 02:50:16 +02:00
finalIndex := index % len(DefaultSeriesStrokeColors)
return DefaultSeriesStrokeColors[finalIndex]
}
var (
2016-07-10 05:14:11 +02:00
// DefaultAnnotationPadding is the padding around an annotation.
2016-07-15 06:14:46 +02:00
DefaultAnnotationPadding = Box{Top: 5, Left: 5, Right: 5, Bottom: 5}
2016-07-08 02:50:16 +02:00
// DefaultBackgroundPadding is the default canvas padding config.
DefaultBackgroundPadding = Box{Top: 5, Left: 5, Right: 5, Bottom: 5}
2016-07-07 23:44:03 +02:00
)
2016-07-07 03:54:00 +02:00
var (
_defaultFontLock sync.Mutex
_defaultFont *truetype.Font
)
// GetDefaultFont returns the default font (Roboto-Medium).
func GetDefaultFont() (*truetype.Font, error) {
if _defaultFont == nil {
_defaultFontLock.Lock()
defer _defaultFontLock.Unlock()
if _defaultFont == nil {
font, err := truetype.Parse(roboto)
if err != nil {
return nil, err
}
_defaultFont = font
}
}
return _defaultFont, nil
}