Documentation
¶
Overview ¶
timeseries provides tools for adding and formatting static time series data for reporting purposes.
Index ¶
- func MSS2MS(in map[string]map[string]int) map[string]int
- func ReportAxisX(tss TimeSeriesSet, cols int, conv func(time.Time) string) []string
- func TimeFormatNiceMonth(dt time.Time) string
- func TimeFormatNiceQuarter(dt time.Time) string
- func TimeFormatRFC3339(dt time.Time) string
- func TimeSeriesMapMinMaxTimes(dsm map[string]TimeSeries) (time.Time, time.Time, error)
- func TimeSeriesMapMinMaxValues(tsm map[string]TimeSeries) (int64, int64, error)
- func TimeSeriesSliceNames(dsSlice []TimeSeries) []string
- func TimeSeriesSliceTable(dsSlice []TimeSeries) table.Table
- func TimeSeriesSliceTimes(dsSlice []TimeSeries) []string
- func TimeSeriesSliceWriteXLSX(filename string, dsSlice []TimeSeries) error
- func TimeSeriesToTable(ds TimeSeries, col2 string, dtFmt func(dt time.Time) string) table.Table
- func TimeSeriesWriteXLSX(filename string, ds TimeSeries, col2 string, dtFmt func(dt time.Time) string) error
- type RowFloat64
- type RowInt64
- type TableConfig
- type TimeItem
- type TimeSeries
- func (ts *TimeSeries) AddItem(item TimeItem)
- func (ts *TimeSeries) DeleteByTime(dt time.Time)
- func (ts *TimeSeries) ItemTimes() []time.Time
- func (ts *TimeSeries) ItemsSorted() []TimeItem
- func (ts *TimeSeries) Keys() []string
- func (ts *TimeSeries) Last() (TimeItem, error)
- func (ts *TimeSeries) LastItem(skipIfTimePartialValueLessPrev bool) (TimeItem, error)
- func (ts *TimeSeries) MaxValue() int64
- func (ts *TimeSeries) MinMaxTimes() (time.Time, time.Time)
- func (ts *TimeSeries) MinMaxValues() (int64, int64)
- func (ts *TimeSeries) MinMaxValuesFloat64() (float64, float64)
- func (ts *TimeSeries) MinValue() int64
- func (ts *TimeSeries) OneItemMaxValue() (TimeItem, error)
- func (ts *TimeSeries) Pop() (TimeItem, error)
- func (ts *TimeSeries) SetSeriesName(seriesName string)
- func (ts *TimeSeries) Stats() point.PointSet
- func (ts *TimeSeries) TimeSeries(interval timeutil.Interval) []time.Time
- func (ts *TimeSeries) TimeSlice(sortSlice bool) timeutil.TimeSlice
- func (ts *TimeSeries) ToMonth(inflate bool) TimeSeries
- func (ts *TimeSeries) ToMonthCumulative(inflate bool, timesInput ...time.Time) (TimeSeries, error)
- func (ts *TimeSeries) ToQuarter() TimeSeries
- func (ts *TimeSeries) WriteXLSX(filename, sheetname, col1, col2 string) error
- type TimeSeriesFunnel
- type TimeSeriesSet
- func (set *TimeSeriesSet) AddItem(item TimeItem)
- func (set *TimeSeriesSet) AddItems(items ...TimeItem)
- func (set *TimeSeriesSet) AddTimeSeries(dataSeries ...TimeSeries) error
- func (set *TimeSeriesSet) DeleteItemByTime(dt time.Time)
- func (set *TimeSeriesSet) GetSeriesByIndex(index int) (TimeSeries, error)
- func (set *TimeSeriesSet) Inflate()
- func (set *TimeSeriesSet) Item(seriesName, rfc3339 string) (TimeItem, error)
- func (set *TimeSeriesSet) MinMaxTimes() (time.Time, time.Time)
- func (set *TimeSeriesSet) MinMaxValues() (int64, int64)
- func (set *TimeSeriesSet) MinMaxValuesFloat64() (float64, float64)
- func (set *TimeSeriesSet) PopLast()
- func (set *TimeSeriesSet) SeriesNames() []string
- func (set *TimeSeriesSet) TimeSlice(sortAsc bool) sortutil.TimeSlice
- func (set *TimeSeriesSet) TimeStrings() []string
- func (set *TimeSeriesSet) ToMonth(inflate bool) TimeSeriesSet
- func (set *TimeSeriesSet) ToMonthCumulative(popLast, inflate bool) (TimeSeriesSet, error)
- func (set *TimeSeriesSet) ToNewSeriesNames(seriesNames, seriesSetNames map[string]string) TimeSeriesSet
- func (set *TimeSeriesSet) ToTable(opts *TssTableOpts) (table.Table, error)
- func (set *TimeSeriesSet) WriteXLSX(filename string, opts *TssTableOpts) error
- type TimeSeriesSet2
- type TimeSeriesSimple
- type TimeStats
- type TssTableOpts
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ReportAxisX ¶
ReportAxisX generates data for use with `C3Chart.C3Axis.C3AxisX.Categories`.
func TimeFormatNiceMonth ¶
func TimeFormatNiceQuarter ¶
func TimeFormatRFC3339 ¶
func TimeSeriesMapMinMaxValues ¶
func TimeSeriesMapMinMaxValues(tsm map[string]TimeSeries) (int64, int64, error)
func TimeSeriesSliceNames ¶
func TimeSeriesSliceNames(dsSlice []TimeSeries) []string
func TimeSeriesSliceTable ¶
func TimeSeriesSliceTable(dsSlice []TimeSeries) table.Table
func TimeSeriesSliceTimes ¶
func TimeSeriesSliceTimes(dsSlice []TimeSeries) []string
func TimeSeriesSliceWriteXLSX ¶
func TimeSeriesSliceWriteXLSX(filename string, dsSlice []TimeSeries) error
TimeSeries writes a slice of TimeSeries to an Excel XLSX file for easy consumption.
func TimeSeriesToTable ¶
TimeSeriesToTable generates a `table.Table` given a `TimeSeries`.
func TimeSeriesWriteXLSX ¶
func TimeSeriesWriteXLSX(filename string, ds TimeSeries, col2 string, dtFmt func(dt time.Time) string) error
TimeSeriesWriteXLSX writes an XSLX file given a `TimeSeries`
Types ¶
type RowFloat64 ¶
func ReportFunnelPct ¶
func ReportFunnelPct(rows []RowInt64) []RowFloat64
func ReportGrowthPct ¶
func ReportGrowthPct(rows []RowInt64) []RowFloat64
type RowInt64 ¶
type RowInt64 struct {
Name string
DisplayName string
HavePlusOne bool
ValuePlusOne int64
Values []int64
}
type TableConfig ¶
type TableConfig struct {
CountColIdx uint
TimeColIdx uint
TimeFormat string
SeriesSetNameColIdx int // optional. Set < 0 to discard.
SeriesNameColIdx int
Interval timeutil.Interval
}
func (*TableConfig) GetTimeFormat ¶
func (cfg *TableConfig) GetTimeFormat() string
type TimeItem ¶
type TimeItem struct {
SeriesName string
SeriesSetName string
Time time.Time
IsFloat bool
Value int64
ValueFloat float64
}
func ParseRecordsDataItems ¶
func ParseRecordsDataItems(records [][]string, cfg TableConfig) ([]TimeItem, error)
func (*TimeItem) ValueFloat64 ¶
func (*TimeItem) ValueInt64 ¶
type TimeSeries ¶
type TimeSeries struct {
SeriesName string
ItemMap map[string]TimeItem
IsFloat bool
Interval timeutil.Interval // Informational
}
func AggregateSeries ¶
func AggregateSeries(series TimeSeries) TimeSeries
func NewTimeSeries ¶
func NewTimeSeries() TimeSeries
func TimeSeriesDivide ¶
func TimeSeriesDivide(numer, denom TimeSeries) (TimeSeries, error)
func (*TimeSeries) AddItem ¶
func (ts *TimeSeries) AddItem(item TimeItem)
AddItem adds data item. It will sum values when existing time unit is encountered.
func (*TimeSeries) DeleteByTime ¶
func (ts *TimeSeries) DeleteByTime(dt time.Time)
func (*TimeSeries) ItemTimes ¶
func (ts *TimeSeries) ItemTimes() []time.Time
func (*TimeSeries) ItemsSorted ¶
func (ts *TimeSeries) ItemsSorted() []TimeItem
ItemsSorted returns sorted TimeItems. This currently uses a simple string sort on RFC3339 times.
func (*TimeSeries) Keys ¶
func (ts *TimeSeries) Keys() []string
Keys returns a sorted listed of Item keys.
func (*TimeSeries) Last ¶
func (ts *TimeSeries) Last() (TimeItem, error)
func (*TimeSeries) LastItem ¶
func (ts *TimeSeries) LastItem(skipIfTimePartialValueLessPrev bool) (TimeItem, error)
func (*TimeSeries) MaxValue ¶
func (ts *TimeSeries) MaxValue() int64
func (*TimeSeries) MinMaxTimes ¶
func (ts *TimeSeries) MinMaxTimes() (time.Time, time.Time)
func (*TimeSeries) MinMaxValues ¶
func (ts *TimeSeries) MinMaxValues() (int64, int64)
func (*TimeSeries) MinMaxValuesFloat64 ¶
func (ts *TimeSeries) MinMaxValuesFloat64() (float64, float64)
func (*TimeSeries) MinValue ¶
func (ts *TimeSeries) MinValue() int64
func (*TimeSeries) OneItemMaxValue ¶
func (ts *TimeSeries) OneItemMaxValue() (TimeItem, error)
func (*TimeSeries) Pop ¶
func (ts *TimeSeries) Pop() (TimeItem, error)
func (*TimeSeries) SetSeriesName ¶
func (ts *TimeSeries) SetSeriesName(seriesName string)
func (*TimeSeries) Stats ¶
func (ts *TimeSeries) Stats() point.PointSet
func (*TimeSeries) TimeSeries ¶
func (ts *TimeSeries) TimeSeries(interval timeutil.Interval) []time.Time
func (*TimeSeries) ToMonth ¶
func (ts *TimeSeries) ToMonth(inflate bool) TimeSeries
func (*TimeSeries) ToMonthCumulative ¶
func (ts *TimeSeries) ToMonthCumulative(inflate bool, timesInput ...time.Time) (TimeSeries, error)
func (*TimeSeries) ToQuarter ¶
func (ts *TimeSeries) ToQuarter() TimeSeries
func (*TimeSeries) WriteXLSX ¶
func (ts *TimeSeries) WriteXLSX(filename, sheetname, col1, col2 string) error
type TimeSeriesFunnel ¶
type TimeSeriesFunnel struct {
Series map[string]TimeSeriesSimple
Order []string
}
func (*TimeSeriesFunnel) TimeSeriesSetByQuarter ¶
func (tsf *TimeSeriesFunnel) TimeSeriesSetByQuarter() (TimeSeriesSet, error)
func (*TimeSeriesFunnel) Times ¶
func (tsf *TimeSeriesFunnel) Times() []time.Time
func (*TimeSeriesFunnel) TimesSorted ¶
func (tsf *TimeSeriesFunnel) TimesSorted() []time.Time
type TimeSeriesSet ¶
type TimeSeriesSet struct {
Name string
Series map[string]TimeSeries
Times []time.Time
Order []string
IsFloat bool
Interval timeutil.Interval
}
func NewTimeSeriesSet ¶
func NewTimeSeriesSet(name string) TimeSeriesSet
func (*TimeSeriesSet) AddItem ¶
func (set *TimeSeriesSet) AddItem(item TimeItem)
func (*TimeSeriesSet) AddItems ¶
func (set *TimeSeriesSet) AddItems(items ...TimeItem)
func (*TimeSeriesSet) AddTimeSeries ¶
func (set *TimeSeriesSet) AddTimeSeries(dataSeries ...TimeSeries) error
func (*TimeSeriesSet) DeleteItemByTime ¶
func (set *TimeSeriesSet) DeleteItemByTime(dt time.Time)
func (*TimeSeriesSet) GetSeriesByIndex ¶
func (set *TimeSeriesSet) GetSeriesByIndex(index int) (TimeSeries, error)
func (*TimeSeriesSet) Inflate ¶
func (set *TimeSeriesSet) Inflate()
func (*TimeSeriesSet) Item ¶
func (set *TimeSeriesSet) Item(seriesName, rfc3339 string) (TimeItem, error)
func (*TimeSeriesSet) MinMaxTimes ¶
func (set *TimeSeriesSet) MinMaxTimes() (time.Time, time.Time)
func (*TimeSeriesSet) MinMaxValues ¶
func (set *TimeSeriesSet) MinMaxValues() (int64, int64)
func (*TimeSeriesSet) MinMaxValuesFloat64 ¶
func (set *TimeSeriesSet) MinMaxValuesFloat64() (float64, float64)
func (*TimeSeriesSet) PopLast ¶
func (set *TimeSeriesSet) PopLast()
func (*TimeSeriesSet) SeriesNames ¶
func (set *TimeSeriesSet) SeriesNames() []string
func (*TimeSeriesSet) TimeSlice ¶
func (set *TimeSeriesSet) TimeSlice(sortAsc bool) sortutil.TimeSlice
func (*TimeSeriesSet) TimeStrings ¶
func (set *TimeSeriesSet) TimeStrings() []string
func (*TimeSeriesSet) ToMonth ¶
func (set *TimeSeriesSet) ToMonth(inflate bool) TimeSeriesSet
func (*TimeSeriesSet) ToMonthCumulative ¶
func (set *TimeSeriesSet) ToMonthCumulative(popLast, inflate bool) (TimeSeriesSet, error)
func (*TimeSeriesSet) ToNewSeriesNames ¶
func (set *TimeSeriesSet) ToNewSeriesNames(seriesNames, seriesSetNames map[string]string) TimeSeriesSet
func (*TimeSeriesSet) ToTable ¶
func (set *TimeSeriesSet) ToTable(opts *TssTableOpts) (table.Table, error)
ToTable returns a `table.TableData`.
func (*TimeSeriesSet) WriteXLSX ¶
func (set *TimeSeriesSet) WriteXLSX(filename string, opts *TssTableOpts) error
type TimeSeriesSet2 ¶
type TimeSeriesSet2 struct {
Name string
SetsMap map[string]TimeSeriesSet
Interval timeutil.Interval
}
func NewTimeSeriesSet2 ¶
func NewTimeSeriesSet2(name string) TimeSeriesSet2
func (*TimeSeriesSet2) AddItem ¶
func (tss2 *TimeSeriesSet2) AddItem(item TimeItem)
func (*TimeSeriesSet2) AddItems ¶
func (tss2 *TimeSeriesSet2) AddItems(items ...TimeItem)
func (*TimeSeriesSet2) SetNamesSorted ¶
func (tss2 *TimeSeriesSet2) SetNamesSorted() []string
type TimeSeriesSimple ¶
func NewTimeSeriesSimple ¶
func NewTimeSeriesSimple(name, displayName string) TimeSeriesSimple
func (*TimeSeriesSimple) ToTimeSeriesQuarter ¶
func (tss *TimeSeriesSimple) ToTimeSeriesQuarter() TimeSeries
type TimeStats ¶
type TimeStats struct {
Items []TimeItem
}
TimeStats is used to generate unique counts stats for an array of with time ane names.
func (*TimeStats) UniqueCountsByMonth ¶
func (*TimeStats) UniqueCountsByQuarter ¶
type TssTableOpts ¶
type TssTableOpts struct {
TimeColumnTitle string
FuncFormatTime func(time.Time) string
TotalInclude bool
TotalTitle string
PercentInclude bool
PercentSuffix string
}
func (*TssTableOpts) PercentSuffixOrDefault ¶
func (opts *TssTableOpts) PercentSuffixOrDefault() string
func (*TssTableOpts) TotalTitleOrDefault ¶
func (opts *TssTableOpts) TotalTitleOrDefault() string