Documentation ¶
Index ¶
- Constants
- Variables
- func AbsInt(value int) int
- func DrawAnnotation(r Renderer, canvasBox Box, s Style, lx, ly int, label string)
- func DrawBox(r Renderer, b Box, s Style)
- func DrawLineSeries(r Renderer, canvasBox Box, xrange, yrange Range, s Style, vs ValueProvider)
- func DrawText(r Renderer, text string, x, y int, s Style)
- func DrawTextCentered(r Renderer, text string, x, y int, s Style)
- func FloatValueFormatter(v interface{}) string
- func FloatValueFormatterWithFormat(v interface{}, floatFormat string) string
- func GetDefaultFont() (*truetype.Font, error)
- func GetDefaultSeriesStrokeColor(index int) drawing.Color
- func GetRoundToForDelta(delta float64) float64
- func MaxInt(values ...int) int
- func MinAndMax(values ...float64) (min float64, max float64)
- func MinAndMaxOfTime(values ...time.Time) (min time.Time, max time.Time)
- func MinInt(values ...int) int
- func PercentDifference(v1, v2 float64) float64
- func RoundDown(value, roundTo float64) float64
- func RoundUp(value, roundTo float64) float64
- func Seq(start, end float64, steps ...float64) []float64
- func Slices(count int, total float64) []float64
- func TimeToFloat64(t time.Time) float64
- func TimeValueFormatter(v interface{}) string
- func TimeValueFormatterWithFormat(v interface{}, dateFormat string) string
- type Annotation
- type AnnotationSeries
- func (as AnnotationSeries) GetName() string
- func (as AnnotationSeries) GetStyle() Style
- func (as AnnotationSeries) GetYAxis() YAxisType
- func (as AnnotationSeries) Measure(r Renderer, canvasBox Box, xrange, yrange Range, defaults Style) Box
- func (as AnnotationSeries) Render(r Renderer, canvasBox Box, xrange, yrange Range, defaults Style)
- type Axis
- type Box
- func (b Box) Aspect() float64
- func (b Box) Center() (x, y int)
- func (b Box) Clone() Box
- func (b Box) Constrain(other Box) Box
- func (b Box) Equals(other Box) bool
- func (b Box) Fit(other Box) Box
- func (b Box) GetBottom(defaults ...int) int
- func (b Box) GetLeft(defaults ...int) int
- func (b Box) GetRight(defaults ...int) int
- func (b Box) GetTop(defaults ...int) int
- func (b Box) Grow(other Box) Box
- func (b Box) Height() int
- func (b Box) IsBiggerThan(other Box) bool
- func (b Box) IsSmallerThan(other Box) bool
- func (b Box) IsZero() bool
- func (b Box) OuterConstrain(bounds, other Box) Box
- func (b Box) Shift(x, y int) Box
- func (b Box) String() string
- func (b Box) Width() int
- type Chart
- type ContinuousSeries
- func (cs ContinuousSeries) GetName() string
- func (cs ContinuousSeries) GetStyle() Style
- func (cs ContinuousSeries) GetValue(index int) (float64, float64)
- func (cs ContinuousSeries) GetValueFormatters() (x, y ValueFormatter)
- func (cs ContinuousSeries) GetYAxis() YAxisType
- func (cs ContinuousSeries) Len() int
- func (cs ContinuousSeries) Render(r Renderer, canvasBox Box, xrange, yrange Range, defaults Style)
- type Float
- type GridLine
- type Range
- type Renderable
- type Renderer
- type RendererProvider
- type Series
- type Style
- func (s Style) GetFillColor(defaults ...drawing.Color) drawing.Color
- func (s Style) GetFont(defaults ...*truetype.Font) *truetype.Font
- func (s Style) GetFontColor(defaults ...drawing.Color) drawing.Color
- func (s Style) GetFontSize(defaults ...float64) float64
- func (s Style) GetPadding(defaults ...Box) Box
- func (s Style) GetStrokeColor(defaults ...drawing.Color) drawing.Color
- func (s Style) GetStrokeDashArray(defaults ...[]float64) []float64
- func (s Style) GetStrokeWidth(defaults ...float64) float64
- func (s Style) IsZero() bool
- func (s Style) SVG(dpi float64) string
- func (s Style) SVGFill() Style
- func (s Style) SVGFillAndStroke() Style
- func (s Style) SVGStroke() Style
- func (s Style) SVGText() Style
- func (s Style) WithDefaultsFrom(defaults Style) (final Style)
- type Tick
- type Ticks
- type TimeSeries
- func (ts TimeSeries) GetName() string
- func (ts TimeSeries) GetStyle() Style
- func (ts TimeSeries) GetValue(index int) (x float64, y float64)
- func (ts TimeSeries) GetValueFormatters() (x, y ValueFormatter)
- func (ts TimeSeries) GetYAxis() YAxisType
- func (ts TimeSeries) Len() int
- func (ts TimeSeries) Render(r Renderer, canvasBox Box, xrange, yrange Range, defaults Style)
- type ValueFormatter
- type ValueFormatterProvider
- type ValueProvider
- type XAxis
- func (xa XAxis) GetGridLines(ticks []Tick) []GridLine
- func (xa XAxis) GetName() string
- func (xa XAxis) GetStyle() Style
- func (xa XAxis) GetTicks(r Renderer, ra Range, defaults Style, vf ValueFormatter) []Tick
- func (xa XAxis) Measure(r Renderer, canvasBox Box, ra Range, defaults Style, ticks []Tick) Box
- func (xa XAxis) Render(r Renderer, canvasBox Box, ra Range, defaults Style, ticks []Tick)
- type YAxis
- func (ya YAxis) GetGridLines(ticks []Tick) []GridLine
- func (ya YAxis) GetName() string
- func (ya YAxis) GetStyle() Style
- func (ya YAxis) GetTicks(r Renderer, ra Range, defaults Style, vf ValueFormatter) []Tick
- func (ya YAxis) Measure(r Renderer, canvasBox Box, ra Range, defaults Style, ticks []Tick) Box
- func (ya YAxis) Render(r Renderer, canvasBox Box, ra Range, defaults Style, ticks []Tick)
- type YAxisType
Constants ¶
const ( // DefaultChartHeight is the default chart height. DefaultChartHeight = 400 // DefaultChartWidth is the default chart width. DefaultChartWidth = 200 // DefaultStrokeWidth is the default chart line/stroke width. DefaultStrokeWidth = 1.0 // DefaultAxisLineWidth is the line width of the axis lines. DefaultAxisLineWidth = 1.0 //DefaultDPI is the default dots per inch for the chart. DefaultDPI = 92.0 // DefaultMinimumFontSize is the default minimum font size. DefaultMinimumFontSize = 8.0 // DefaultFontSize is the default font size. DefaultFontSize = 10.0 // DefaultTitleFontSize is the default title font size. DefaultTitleFontSize = 18.0 // DefaultAnnotationDeltaWidth is the width of the left triangle out of annotations. DefaultAnnotationDeltaWidth = 10 // DefaultAnnotationFontSize is the font size of annotations. DefaultAnnotationFontSize = 10.0 // 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 // DefaultYAxisMargin is the default distance from the right of the canvas to the y axis labels. DefaultYAxisMargin = 10 // DefaultXAxisMargin is the default distance from bottom of the canvas to the x axis labels. DefaultXAxisMargin = 10 //DefaultVerticalTickHeight is half the margin. DefaultVerticalTickHeight = DefaultXAxisMargin >> 1 //DefaultHorizontalTickWidth is half the margin. DefaultHorizontalTickWidth = DefaultYAxisMargin >> 1 // DefaultTickCount is the default number of ticks to show DefaultTickCount = 10 // DefaultTickCountSanityCheck is a hard limit on number of ticks to prevent infinite loops. DefaultTickCountSanityCheck = 1 << 10 //1024 // DefaultMinimumTickHorizontalSpacing is the minimum distance between horizontal ticks. DefaultMinimumTickHorizontalSpacing = 20 // DefaultMinimumTickVerticalSpacing is the minimum distance between vertical ticks. DefaultMinimumTickVerticalSpacing = 20 // DefaultDateFormat is the default date format. DefaultDateFormat = "2006-01-02" )
Variables ¶
var ( // DefaultBackgroundColor is the default chart background color. // It is equivalent to css color:white. DefaultBackgroundColor = drawing.Color{R: 255, G: 255, B: 255, A: 255} // DefaultBackgroundStrokeColor is the default chart border color. // It is equivalent to color:white. DefaultBackgroundStrokeColor = drawing.Color{R: 255, G: 255, B: 255, A: 255} // DefaultCanvasColor is the default chart canvas color. // It is equivalent to css color:white. DefaultCanvasColor = drawing.Color{R: 255, G: 255, B: 255, A: 255} // DefaultCanvasStrokColor 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} // DefaultTextColor is the default chart text color. // It is equivalent to #333333. DefaultTextColor = drawing.Color{R: 51, G: 51, B: 51, A: 255} // DefaultAxisColor is the default chart axis line color. // It is equivalent to #333333. DefaultAxisColor = drawing.Color{R: 51, G: 51, B: 51, A: 255} // DefaultStrokeColor is the default chart border color. // It is equivalent to #efefef. DefaultStrokeColor = drawing.Color{R: 239, G: 239, B: 239, A: 255} // DefaultFillColor is the default fill color. // It is equivalent to #0074d9. DefaultFillColor = drawing.Color{R: 0, G: 217, B: 116, A: 255} // DefaultAnnotationFillColor is the default annotation background color. DefaultAnnotationFillColor = drawing.Color{R: 255, G: 255, B: 255, A: 255} // DefaultGridLineColor is the default grid line color. DefaultGridLineColor = drawing.Color{R: 239, G: 239, B: 239, A: 255} )
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} )
var ( // DefaultAnnotationPadding is the padding around an annotation. DefaultAnnotationPadding = Box{Top: 3, Left: 5, Right: 5, Bottom: 5} // DefaultBackgroundPadding is the default canvas padding config. DefaultBackgroundPadding = Box{Top: 5, Left: 5, Right: 5, Bottom: 5} )
Functions ¶
func DrawAnnotation ¶
DrawAnnotation draws an anotation with a renderer.
func DrawLineSeries ¶
func DrawLineSeries(r Renderer, canvasBox Box, xrange, yrange Range, s Style, vs ValueProvider)
DrawLineSeries draws a line series with a renderer.
func DrawTextCentered ¶
DrawTextCentered draws text with a given style centered.
func FloatValueFormatter ¶
func FloatValueFormatter(v interface{}) string
FloatValueFormatter is a ValueFormatter for float64.
func FloatValueFormatterWithFormat ¶
FloatValueFormatterWithFormat is a ValueFormatter for float64 with a given format.
func GetDefaultFont ¶
GetDefaultFont returns the default font (Roboto-Medium).
func GetDefaultSeriesStrokeColor ¶
GetDefaultSeriesStrokeColor returns a color from the default list by index. NOTE: the index will wrap around (using a modulo).g
func GetRoundToForDelta ¶
GetRoundToForDelta returns a `roundTo` value for a given delta.
func MinAndMaxOfTime ¶
MinAndMaxOfTime returns the min and max of a given set of times in one pass.
func PercentDifference ¶
PercentDifference computes the percentage difference between two values. The formula is (v2-v1)/v1.
func Slices ¶
Slices generates N slices that span the total. The resulting array will be intermediate indexes until total.
func TimeToFloat64 ¶
TimeToFloat64 returns a float64 representation of a time.
func TimeValueFormatter ¶
func TimeValueFormatter(v interface{}) string
TimeValueFormatter is a ValueFormatter for timestamps.
func TimeValueFormatterWithFormat ¶
TimeValueFormatterWithFormat is a ValueFormatter for timestamps with a given format.
Types ¶
type Annotation ¶
Annotation is a label on the chart.
type AnnotationSeries ¶
type AnnotationSeries struct { Name string Style Style YAxis YAxisType Annotations []Annotation }
AnnotationSeries is a series of labels on the chart.
func (AnnotationSeries) GetName ¶
func (as AnnotationSeries) GetName() string
GetName returns the name of the time series.
func (AnnotationSeries) GetStyle ¶
func (as AnnotationSeries) GetStyle() Style
GetStyle returns the line style.
func (AnnotationSeries) GetYAxis ¶
func (as AnnotationSeries) GetYAxis() YAxisType
GetYAxis returns which YAxis the series draws on.
type Axis ¶
type Axis interface { GetName() string GetStyle() Style GetTicks(r Renderer, ra Range, vf ValueFormatter) []Tick GetGridLines(ticks []Tick) []GridLine Render(c *Chart, r Renderer, canvasBox Box, ra Range, ticks []Tick) }
Axis is a chart feature detailing what values happen where.
type Box ¶
Box represents the main 4 dimensions of a box.
func MeasureAnnotation ¶
MeasureAnnotation measures how big an annotation would be.
func (Box) Constrain ¶
Constrain is similar to `Fit` except that it will work more literally like the opposite of grow.
func (Box) Fit ¶
Fit is functionally the inverse of grow. Fit maintains the original aspect ratio of the `other` box, but constrains it to the bounds of the target box.
func (Box) IsBiggerThan ¶
IsBiggerThan returns if a box is bigger than another box.
func (Box) IsSmallerThan ¶
IsSmallerThan returns if a box is smaller than another box.
func (Box) OuterConstrain ¶
OuterConstrain is similar to `Constraint` with the difference that it applies corrections
type Chart ¶
type Chart struct { Title string TitleStyle Style Width int Height int DPI float64 Background Style Canvas Style XAxis XAxis YAxis YAxis YAxisSecondary YAxis Font *truetype.Font Series []Series Elements []Renderable // contains filtered or unexported fields }
Chart is what we're drawing.
type ContinuousSeries ¶
type ContinuousSeries struct { Name string Style Style YAxis YAxisType XValues []float64 YValues []float64 }
ContinuousSeries represents a line on a chart.
func (ContinuousSeries) GetName ¶
func (cs ContinuousSeries) GetName() string
GetName returns the name of the time series.
func (ContinuousSeries) GetStyle ¶
func (cs ContinuousSeries) GetStyle() Style
GetStyle returns the line style.
func (ContinuousSeries) GetValue ¶
func (cs ContinuousSeries) GetValue(index int) (float64, float64)
GetValue gets a value at a given index.
func (ContinuousSeries) GetValueFormatters ¶
func (cs ContinuousSeries) GetValueFormatters() (x, y ValueFormatter)
GetValueFormatters returns value formatter defaults for the series.
func (ContinuousSeries) GetYAxis ¶
func (cs ContinuousSeries) GetYAxis() YAxisType
GetYAxis returns which YAxis the series draws on.
func (ContinuousSeries) Len ¶
func (cs ContinuousSeries) Len() int
Len returns the number of elements in the series.
type Float ¶
type Float float64
Float is an alias for float64 that provides a better .String() method.
type GridLine ¶
GridLine is a line on a graph canvas.
func GenerateGridLines ¶
GenerateGridLines generates grid lines.
func (GridLine) Horizontal ¶
Horizontal returns if the line is horizontal line or not.
type Range ¶
Range represents a boundary for a set of numbers.
func (Range) GetRoundedRangeBounds ¶
GetRoundedRangeBounds returns some `prettified` range bounds.
type Renderable ¶
Renderable is a function that can be called to render custom elements on the chart.
type Renderer ¶
type Renderer interface { // GetDPI gets the DPI for the renderer. GetDPI() float64 // SetDPI sets the DPI for the renderer. SetDPI(dpi float64) // SetStrokeColor sets the current stroke color. SetStrokeColor(drawing.Color) // SetFillColor sets the current fill color. SetFillColor(drawing.Color) // SetStrokeWidth sets the stroke width. SetStrokeWidth(width float64) // SetStrokeDashArray sets the stroke dash array. SetStrokeDashArray(dashArray []float64) // MoveTo moves the cursor to a given point. MoveTo(x, y int) // LineTo both starts a shape and draws a line to a given point // from the previous point. LineTo(x, y int) // Close finalizes a shape as drawn by LineTo. Close() // Stroke strokes the path. Stroke() // Fill fills the path, but does not stroke. Fill() // FillStroke fills and strokes a path. FillStroke() // Circle draws a circle at the given coords with a given radius. Circle(radius float64, x, y int) // SetFont sets a font for a text field. SetFont(*truetype.Font) // SetFontColor sets a font's color SetFontColor(drawing.Color) // SetFontSize sets the font size for a text field. SetFontSize(size float64) // Text draws a text blob. Text(body string, x, y int) // MeasureText measures text. MeasureText(body string) Box // Save writes the image to the given writer. Save(w io.Writer) error }
Renderer represents the basic methods required to draw a chart.
type RendererProvider ¶
RendererProvider is a function that returns a renderer.
type Series ¶
type Series interface { GetYAxis() YAxisType GetStyle() Style Render(r Renderer, canvasBox Box, xrange, yrange Range, s Style) }
Series is an alias to Renderable.
type Style ¶
type Style struct { Show bool Padding Box StrokeWidth float64 StrokeColor drawing.Color StrokeDashArray []float64 FillColor drawing.Color FontSize float64 FontColor drawing.Color Font *truetype.Font }
Style is a simple style set.
func (Style) GetFillColor ¶
GetFillColor returns the fill color.
func (Style) GetFontColor ¶
GetFontColor gets the font size.
func (Style) GetFontSize ¶
GetFontSize gets the font size.
func (Style) GetPadding ¶
GetPadding returns the padding.
func (Style) GetStrokeColor ¶
GetStrokeColor returns the stroke color.
func (Style) GetStrokeDashArray ¶
GetStrokeDashArray returns the stroke dash array.
func (Style) GetStrokeWidth ¶
GetStrokeWidth returns the stroke width.
func (Style) SVGFillAndStroke ¶
SVGFillAndStroke returns the fill and stroke components.
func (Style) WithDefaultsFrom ¶
WithDefaultsFrom coalesces two styles into a new style.
type Tick ¶
Tick represents a label on an axis.
func GenerateTicksWithStep ¶
func GenerateTicksWithStep(ra Range, step float64, vf ValueFormatter) []Tick
GenerateTicksWithStep generates a set of ticks.
type Ticks ¶
type Ticks []Tick
Ticks is an array of ticks.
type TimeSeries ¶
type TimeSeries struct { Name string Style Style YAxis YAxisType XValues []time.Time YValues []float64 }
TimeSeries is a line on a chart.
func (TimeSeries) GetName ¶
func (ts TimeSeries) GetName() string
GetName returns the name of the time series.
func (TimeSeries) GetValue ¶
func (ts TimeSeries) GetValue(index int) (x float64, y float64)
GetValue gets a value at a given index.
func (TimeSeries) GetValueFormatters ¶
func (ts TimeSeries) GetValueFormatters() (x, y ValueFormatter)
GetValueFormatters returns value formatter defaults for the series.
func (TimeSeries) GetYAxis ¶
func (ts TimeSeries) GetYAxis() YAxisType
GetYAxis returns which YAxis the series draws on.
func (TimeSeries) Len ¶
func (ts TimeSeries) Len() int
Len returns the number of elements in the series.
type ValueFormatter ¶
type ValueFormatter func(v interface{}) string
ValueFormatter is a function that takes a value and produces a string.
type ValueFormatterProvider ¶
type ValueFormatterProvider interface {
GetValueFormatters() (x, y ValueFormatter)
}
ValueFormatterProvider is a series that has custom formatters.
type ValueProvider ¶
ValueProvider is a type that produces values.
type XAxis ¶
type XAxis struct { Name string Style Style ValueFormatter ValueFormatter Range Range Ticks []Tick GridLines []GridLine GridMajorStyle Style GridMinorStyle Style }
XAxis represents the horizontal axis.
func (XAxis) GetGridLines ¶
GetGridLines returns the gridlines for the axis.
func (XAxis) GetTicks ¶
GetTicks returns the ticks for a series. It coalesces between user provided ticks and generated ticks.
type YAxis ¶
type YAxis struct { Name string Style Style Zero GridLine AxisType YAxisType ValueFormatter ValueFormatter Range Range Ticks []Tick GridLines []GridLine GridMajorStyle Style GridMinorStyle Style }
YAxis is a veritcal rule of the range. There can be (2) y-axes; a primary and secondary.
func (YAxis) GetGridLines ¶
GetGridLines returns the gridlines for the axis.
func (YAxis) GetTicks ¶
GetTicks returns the ticks for a series. It coalesces between user provided ticks and generated ticks.
Source Files ¶
- annotation_series.go
- axis.go
- box.go
- chart.go
- continuous_series.go
- defaults.go
- drawing_helpers.go
- grid_line.go
- range.go
- raster_renderer.go
- renderable.go
- renderer.go
- renderer_provider.go
- roboto.go
- series.go
- style.go
- tick.go
- time_series.go
- util.go
- value_formatter.go
- value_formatter_provider.go
- value_provider.go
- vector_renderer.go
- xaxis.go
- yaxis.go