Documentation ¶
Index ¶
- Constants
- Variables
- func AbsInt(value int) int
- func DrawAnnotation(r Renderer, canvasBox Box, style Style, lx, ly int, label string)
- func DrawBoundedSeries(r Renderer, canvasBox Box, xrange, yrange Range, s Style, ...)
- func DrawBox(r Renderer, b Box, s Style)
- func DrawHistogramSeries(r Renderer, canvasBox Box, xrange, yrange Range, s Style, vs ValueProvider, ...)
- 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 PercentValueFormatter(v interface{}) string
- func RoundDown(value, roundTo float64) float64
- func RoundUp(value, roundTo float64) float64
- func Seq(start, end float64, steps ...float64) []float64
- func SeqDays(days int) []time.Time
- func SeqRand(samples int, scale float64) []float64
- func Slices(count int, total float64) []float64
- func TimeHourValueFormatter(v interface{}) string
- func TimeMinuteValueFormatter(v interface{}) string
- 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 BollingerBandsSeries
- func (bbs *BollingerBandsSeries) GetBoundedLastValue() (x, y1, y2 float64)
- func (bbs *BollingerBandsSeries) GetBoundedValue(index int) (x, y1, y2 float64)
- func (bbs BollingerBandsSeries) GetK(defaults ...float64) float64
- func (bbs BollingerBandsSeries) GetName() string
- func (bbs BollingerBandsSeries) GetPeriod() int
- func (bbs BollingerBandsSeries) GetStyle() Style
- func (bbs BollingerBandsSeries) GetYAxis() YAxisType
- func (bbs *BollingerBandsSeries) Len() int
- func (bbs *BollingerBandsSeries) Render(r Renderer, canvasBox Box, xrange, yrange Range, defaults Style)
- type BoundedLastValueProvider
- type BoundedValueProvider
- 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) GetLastValue() (float64, float64)
- 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 EMASeries
- func (ema *EMASeries) GetLastValue() (x, y float64)
- func (ema EMASeries) GetName() string
- func (ema EMASeries) GetPeriod() int
- func (ema EMASeries) GetSigma() float64
- func (ema EMASeries) GetStyle() Style
- func (ema *EMASeries) GetValue(index int) (x, y float64)
- func (ema EMASeries) GetYAxis() YAxisType
- func (ema EMASeries) Len() int
- func (ema *EMASeries) Render(r Renderer, canvasBox Box, xrange, yrange Range, defaults Style)
- type Float
- type FullBoundedValueProvider
- type FullValueProvider
- type GridLine
- type HistogramSeries
- func (hs HistogramSeries) GetBoundedValue(index int) (x, y1, y2 float64)
- func (hs HistogramSeries) GetName() string
- func (hs HistogramSeries) GetStyle() Style
- func (hs HistogramSeries) GetValue(index int) (x, y float64)
- func (hs HistogramSeries) GetYAxis() YAxisType
- func (hs HistogramSeries) Len() int
- func (hs HistogramSeries) Render(r Renderer, canvasBox Box, xrange, yrange Range, defaults Style)
- type LastValueProvider
- type MACDLineSeries
- func (macdl MACDLineSeries) GetName() string
- func (macdl MACDLineSeries) GetPeriods() (w1, w2 int)
- func (macdl MACDLineSeries) GetStyle() Style
- func (macdl *MACDLineSeries) GetValue(index int) (x float64, y float64)
- func (macdl MACDLineSeries) GetYAxis() YAxisType
- func (macdl *MACDLineSeries) Len() int
- func (macdl *MACDLineSeries) Render(r Renderer, canvasBox Box, xrange, yrange Range, defaults Style)
- type MACDSeries
- type MACDSignalSeries
- func (macds MACDSignalSeries) GetName() string
- func (macds MACDSignalSeries) GetPeriods() (w1, w2, sig int)
- func (macds MACDSignalSeries) GetStyle() Style
- func (macds *MACDSignalSeries) GetValue(index int) (x float64, y float64)
- func (macds MACDSignalSeries) GetYAxis() YAxisType
- func (macds *MACDSignalSeries) Len() int
- func (macds *MACDSignalSeries) Render(r Renderer, canvasBox Box, xrange, yrange Range, defaults Style)
- type Range
- type Renderable
- type Renderer
- type RendererProvider
- type RingBuffer
- func (rb *RingBuffer) AsSlice() []interface{}
- func (rb *RingBuffer) Clear()
- func (rb *RingBuffer) Dequeue() interface{}
- func (rb *RingBuffer) Each(consumer func(value interface{}))
- func (rb *RingBuffer) Enqueue(object interface{})
- func (rb *RingBuffer) Len() int
- func (rb *RingBuffer) Peek() interface{}
- func (rb *RingBuffer) PeekBack() interface{}
- func (rb *RingBuffer) String() string
- func (rb *RingBuffer) TotalLen() int
- func (rb *RingBuffer) TrimExcess()
- type SMASeries
- func (sma SMASeries) GetLastValue() (x, y float64)
- func (sma SMASeries) GetName() string
- func (sma SMASeries) GetPeriod(defaults ...int) int
- func (sma SMASeries) GetStyle() Style
- func (sma SMASeries) GetValue(index int) (x, y float64)
- func (sma SMASeries) GetYAxis() YAxisType
- func (sma SMASeries) Len() int
- func (sma SMASeries) Render(r Renderer, canvasBox Box, xrange, yrange Range, defaults Style)
- 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) SVGFontFace() string
- func (s Style) SVGStroke() Style
- func (s Style) SVGStrokeDashArray() string
- func (s Style) SVGText() Style
- func (s Style) String() string
- func (s Style) WithDefaultsFrom(defaults Style) (final Style)
- type Tick
- type Ticks
- type TimeSeries
- func (ts TimeSeries) GetLastValue() (x, y float64)
- func (ts TimeSeries) GetName() string
- func (ts TimeSeries) GetStyle() Style
- func (ts TimeSeries) GetValue(index int) (x, 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 = 1024 // 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" // DefaultDateHourFormat is the date format for hour timestamp formats. DefaultDateHourFormat = "01-02 3PM" // DefaultDateMinuteFormat is the date format for minute range timestamp formats. DefaultDateMinuteFormat = time.Kitchen // DefaultFloatFormat is the default float format. DefaultFloatFormat = "%.2f" // DefaultPercentValueFormat is the default percent format. DefaultPercentValueFormat = "%0.2f%%" )
const ( // DefaultMACDPeriodPrimary is the long window. DefaultMACDPeriodPrimary = 26 // DefaultMACDPeriodSecondary is the short window. DefaultMACDPeriodSecondary = 12 // DefaultMACDSignalPeriod is the signal period to compute for the MACD. DefaultMACDSignalPeriod = 9 )
const (
// DefaultEMAPeriod is the default EMA period used in the sigma calculation.
DefaultEMAPeriod = 12
)
const (
// DefaultSimpleMovingAveragePeriod is the default number of values to average.
DefaultSimpleMovingAveragePeriod = 16
)
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} // 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} // 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: 5, Left: 5, Right: 5, Bottom: 5} // DefaultBackgroundPadding is the default canvas padding config. DefaultBackgroundPadding = Box{Top: 5, Left: 5, Right: 5, Bottom: 5} )
var ( // DefaultSeriesStrokeColors are a couple default series colors. DefaultSeriesStrokeColors = []drawing.Color{ {R: 0, G: 116, B: 217, A: 255}, {R: 0, G: 217, B: 116, A: 255}, {R: 217, G: 0, B: 116, A: 255}, } )
Functions ¶
func DrawAnnotation ¶
DrawAnnotation draws an anotation with a renderer.
func DrawBoundedSeries ¶
func DrawBoundedSeries(r Renderer, canvasBox Box, xrange, yrange Range, s Style, bbs BoundedValueProvider, drawOffsetIndexes ...int)
DrawBoundedSeries draws a series that implements BoundedValueProvider.
func DrawHistogramSeries ¶
func DrawHistogramSeries(r Renderer, canvasBox Box, xrange, yrange Range, s Style, vs ValueProvider, barWidths ...int)
DrawHistogramSeries draws a value provider as boxes from 0.
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 PercentValueFormatter ¶
func PercentValueFormatter(v interface{}) string
PercentValueFormatter is a formatter for percent values. NOTE: it normalizes the values, i.e. multiplies by 100.0.
func Slices ¶
Slices generates N slices that span the total. The resulting array will be intermediate indexes until total.
func TimeHourValueFormatter ¶
func TimeHourValueFormatter(v interface{}) string
TimeHourValueFormatter is a ValueFormatter for timestamps.
func TimeMinuteValueFormatter ¶
func TimeMinuteValueFormatter(v interface{}) string
TimeMinuteValueFormatter is a ValueFormatter for timestamps.
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 BollingerBandsSeries ¶
type BollingerBandsSeries struct { Name string Style Style YAxis YAxisType Period int K float64 InnerSeries ValueProvider // contains filtered or unexported fields }
BollingerBandsSeries draws bollinger bands for an inner series. Bollinger bands are defined by two lines, one at SMA+k*stddev, one at SMA-k*stdev.
func (*BollingerBandsSeries) GetBoundedLastValue ¶
func (bbs *BollingerBandsSeries) GetBoundedLastValue() (x, y1, y2 float64)
GetBoundedLastValue returns the last bounded value for the series.
func (*BollingerBandsSeries) GetBoundedValue ¶
func (bbs *BollingerBandsSeries) GetBoundedValue(index int) (x, y1, y2 float64)
GetBoundedValue gets the bounded value for the series.
func (BollingerBandsSeries) GetK ¶
func (bbs BollingerBandsSeries) GetK(defaults ...float64) float64
GetK returns the K value.
func (BollingerBandsSeries) GetName ¶
func (bbs BollingerBandsSeries) GetName() string
GetName returns the name of the time series.
func (BollingerBandsSeries) GetPeriod ¶
func (bbs BollingerBandsSeries) GetPeriod() int
GetPeriod returns the window size.
func (BollingerBandsSeries) GetStyle ¶
func (bbs BollingerBandsSeries) GetStyle() Style
GetStyle returns the line style.
func (BollingerBandsSeries) GetYAxis ¶
func (bbs BollingerBandsSeries) GetYAxis() YAxisType
GetYAxis returns which YAxis the series draws on.
func (*BollingerBandsSeries) Len ¶
func (bbs *BollingerBandsSeries) Len() int
Len returns the number of elements in the series.
type BoundedLastValueProvider ¶
type BoundedLastValueProvider interface {
GetBoundedLastValue() (x, y1, y2 float64)
}
BoundedLastValueProvider is a special type of value provider that can return it's (potentially computed) bounded last value.
type BoundedValueProvider ¶
BoundedValueProvider allows series to return a range.
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) GetLastValue ¶
func (cs ContinuousSeries) GetLastValue() (float64, float64)
GetLastValue gets the last value.
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 EMASeries ¶
type EMASeries struct { Name string Style Style YAxis YAxisType Period int InnerSeries ValueProvider // contains filtered or unexported fields }
EMASeries is a computed series.
func (*EMASeries) GetLastValue ¶
GetLastValue computes the last moving average value but walking back window size samples, and recomputing the last moving average chunk.
type Float ¶
type Float float64
Float is an alias for float64 that provides a better .String() method.
type FullBoundedValueProvider ¶
type FullBoundedValueProvider interface { BoundedValueProvider BoundedLastValueProvider }
FullBoundedValueProvider is an interface that combines `BoundedValueProvider` and `BoundedLastValueProvider`
type FullValueProvider ¶
type FullValueProvider interface { ValueProvider LastValueProvider }
FullValueProvider is an interface that combines `ValueProvider` and `LastValueProvider`
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 HistogramSeries ¶
type HistogramSeries struct { Name string Style Style YAxis YAxisType InnerSeries ValueProvider }
HistogramSeries is a special type of series that draws as a histogram. Some peculiarities; it will always be lower bounded at 0 (at the very least). This may alter ranges a bit and generally you want to put a histogram series on it's own y-axis.
func (HistogramSeries) GetBoundedValue ¶
func (hs HistogramSeries) GetBoundedValue(index int) (x, y1, y2 float64)
GetBoundedValue implements BoundedValueProvider.GetBoundedValue
func (HistogramSeries) GetName ¶
func (hs HistogramSeries) GetName() string
GetName implements Series.GetName.
func (HistogramSeries) GetStyle ¶
func (hs HistogramSeries) GetStyle() Style
GetStyle implements Series.GetStyle.
func (HistogramSeries) GetValue ¶
func (hs HistogramSeries) GetValue(index int) (x, y float64)
GetValue implements ValueProvider.GetValue.
func (HistogramSeries) GetYAxis ¶
func (hs HistogramSeries) GetYAxis() YAxisType
GetYAxis returns which yaxis the series is mapped to.
func (HistogramSeries) Len ¶
func (hs HistogramSeries) Len() int
Len implements BoundedValueProvider.Len.
type LastValueProvider ¶
type LastValueProvider interface {
GetLastValue() (x, y float64)
}
LastValueProvider is a special type of value provider that can return it's (potentially computed) last value.
type MACDLineSeries ¶
type MACDLineSeries struct { Name string Style Style YAxis YAxisType InnerSeries ValueProvider PrimaryPeriod int SecondaryPeriod int Sigma float64 // contains filtered or unexported fields }
MACDLineSeries is a series that computes the inner ema1-ema2 value as a series.
func (MACDLineSeries) GetName ¶
func (macdl MACDLineSeries) GetName() string
GetName returns the name of the time series.
func (MACDLineSeries) GetPeriods ¶
func (macdl MACDLineSeries) GetPeriods() (w1, w2 int)
GetPeriods returns the primary and secondary periods.
func (MACDLineSeries) GetStyle ¶
func (macdl MACDLineSeries) GetStyle() Style
GetStyle returns the line style.
func (*MACDLineSeries) GetValue ¶
func (macdl *MACDLineSeries) GetValue(index int) (x float64, y float64)
GetValue gets a value at a given index. For MACD it is the signal value.
func (MACDLineSeries) GetYAxis ¶
func (macdl MACDLineSeries) GetYAxis() YAxisType
GetYAxis returns which YAxis the series draws on.
func (*MACDLineSeries) Len ¶
func (macdl *MACDLineSeries) Len() int
Len returns the number of elements in the series.
type MACDSeries ¶
type MACDSeries struct { Name string Style Style YAxis YAxisType InnerSeries ValueProvider PrimaryPeriod int SecondaryPeriod int SignalPeriod int // contains filtered or unexported fields }
MACDSeries computes the difference between the MACD line and the MACD Signal line. It is used in technical analysis and gives a lagging indicator of momentum.
func (MACDSeries) GetName ¶
func (macd MACDSeries) GetName() string
GetName returns the name of the time series.
func (MACDSeries) GetPeriods ¶
func (macd MACDSeries) GetPeriods() (w1, w2, sig int)
GetPeriods returns the primary and secondary periods.
func (MACDSeries) GetStyle ¶
func (macd MACDSeries) GetStyle() Style
GetStyle returns the line style.
func (*MACDSeries) GetValue ¶
func (macd *MACDSeries) GetValue(index int) (x float64, y float64)
GetValue gets a value at a given index. For MACD it is the signal value.
func (MACDSeries) GetYAxis ¶
func (macd MACDSeries) GetYAxis() YAxisType
GetYAxis returns which YAxis the series draws on.
func (MACDSeries) Len ¶
func (macd MACDSeries) Len() int
Len returns the number of elements in the series.
type MACDSignalSeries ¶
type MACDSignalSeries struct { Name string Style Style YAxis YAxisType InnerSeries ValueProvider PrimaryPeriod int SecondaryPeriod int SignalPeriod int // contains filtered or unexported fields }
MACDSignalSeries computes the EMA of the MACDLineSeries.
func (MACDSignalSeries) GetName ¶
func (macds MACDSignalSeries) GetName() string
GetName returns the name of the time series.
func (MACDSignalSeries) GetPeriods ¶
func (macds MACDSignalSeries) GetPeriods() (w1, w2, sig int)
GetPeriods returns the primary and secondary periods.
func (MACDSignalSeries) GetStyle ¶
func (macds MACDSignalSeries) GetStyle() Style
GetStyle returns the line style.
func (*MACDSignalSeries) GetValue ¶
func (macds *MACDSignalSeries) GetValue(index int) (x float64, y float64)
GetValue gets a value at a given index. For MACD it is the signal value.
func (MACDSignalSeries) GetYAxis ¶
func (macds MACDSignalSeries) GetYAxis() YAxisType
GetYAxis returns which YAxis the series draws on.
func (*MACDSignalSeries) Len ¶
func (macds *MACDSignalSeries) Len() int
Len returns the number of elements in the series.
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.
func CreateLegend ¶
func CreateLegend(c *Chart, userDefaults ...Style) Renderable
CreateLegend returns a legend renderable function.
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 RingBuffer ¶
type RingBuffer struct {
// contains filtered or unexported fields
}
RingBuffer is a fifo buffer that is backed by a pre-allocated array, instead of allocating a whole new node object for each element (which saves GC churn). Enqueue can be O(n), Dequeue can be O(1).
func NewRingBuffer ¶
func NewRingBuffer() *RingBuffer
NewRingBuffer creates a new, empty, RingBuffer.
func NewRingBufferFromSlice ¶
func NewRingBufferFromSlice(values []interface{}) *RingBuffer
NewRingBufferFromSlice createsa ring buffer out of a slice.
func NewRingBufferWithCapacity ¶
func NewRingBufferWithCapacity(capacity int) *RingBuffer
NewRingBufferWithCapacity creates a new RingBuffer pre-allocated with the given capacity.
func (*RingBuffer) AsSlice ¶
func (rb *RingBuffer) AsSlice() []interface{}
AsSlice returns the ring buffer, in order, as a slice.
func (*RingBuffer) Clear ¶
func (rb *RingBuffer) Clear()
Clear removes all objects from the RingBuffer.
func (*RingBuffer) Dequeue ¶
func (rb *RingBuffer) Dequeue() interface{}
Dequeue removes the first element from the RingBuffer.
func (*RingBuffer) Each ¶
func (rb *RingBuffer) Each(consumer func(value interface{}))
Each calls the consumer for each element in the buffer.
func (*RingBuffer) Enqueue ¶
func (rb *RingBuffer) Enqueue(object interface{})
Enqueue adds an element to the "back" of the RingBuffer.
func (*RingBuffer) Len ¶
func (rb *RingBuffer) Len() int
Len returns the length of the ring buffer (as it is currently populated). Actual memory footprint may be different.
func (*RingBuffer) Peek ¶
func (rb *RingBuffer) Peek() interface{}
Peek returns but does not remove the first element.
func (*RingBuffer) PeekBack ¶
func (rb *RingBuffer) PeekBack() interface{}
PeekBack returns but does not remove the last element.
func (*RingBuffer) String ¶
func (rb *RingBuffer) String() string
func (*RingBuffer) TotalLen ¶
func (rb *RingBuffer) TotalLen() int
TotalLen returns the total size of the ring bufffer, including empty elements.
func (*RingBuffer) TrimExcess ¶
func (rb *RingBuffer) TrimExcess()
TrimExcess resizes the buffer to better fit the contents.
type SMASeries ¶
type SMASeries struct { Name string Style Style YAxis YAxisType Period int InnerSeries ValueProvider }
SMASeries is a computed series.
func (SMASeries) GetLastValue ¶
GetLastValue computes the last moving average value but walking back window size samples, and recomputing the last moving average chunk.
type Series ¶
type Series interface { GetName() string 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) SVGFontFace ¶
SVGFontFace returns the font face for the style.
func (Style) SVGStrokeDashArray ¶
SVGStrokeDashArray returns the stroke-dasharray property of a style.
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) GetLastValue ¶
func (ts TimeSeries) GetLastValue() (x, y float64)
GetLastValue gets the last value.
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, 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
- bollinger_band_series.go
- box.go
- chart.go
- continuous_series.go
- defaults.go
- drawing_helpers.go
- ema_series.go
- grid_line.go
- histogram_series.go
- macd_series.go
- range.go
- raster_renderer.go
- renderable.go
- renderer.go
- renderer_provider.go
- ring_buffer.go
- roboto.go
- series.go
- sma_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