histogram

package
v2.15.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 4, 2023 License: MIT Imports: 21 Imported by: 11

Documentation

Index

Constants

View Source
const (
	SortNameAsc   = maputil.SortNameAsc
	SortNameDesc  = maputil.SortNameDesc
	SortValueAsc  = maputil.SortValueAsc
	SortValueDesc = maputil.SortValueDesc
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Histogram

type Histogram struct {
	Name        string
	Bins        map[string]int
	Counts      map[string]int // how many items have counts.
	Percentages map[string]float64
}

Histogram is used to count how many times an item appears and how many times number of appearances appear. It can be used with simple string keys or `map[string]string` keys which are converted to soerted query strings.

func NewHistogram

func NewHistogram(name string) *Histogram

func ParseFileCSV

func ParseFileCSV(file string, name string, binNameColIdx, binFrequencyColIdx uint) (*Histogram, error)

ParseFileCSV reads a CSV using default settings of `,` separator, header row and BOM to be stripped. If you have other configurations, use `table.ReadFile()` directly and call `HistogramFromTable()`.

func ParseTable

func ParseTable(tbl table.Table, binNameColIdx, binFrequencyColIdx uint) (*Histogram, error)

ParseTable parses a `table.Table` to a `Histogram` given a table, binName column index and binFrequency column index. Empty rows are skipped.

func (*Histogram) Add

func (hist *Histogram) Add(binName string, binCount int)

func (*Histogram) AddBulk added in v2.11.0

func (hist *Histogram) AddBulk(m map[string]int)

func (*Histogram) AddMap added in v2.10.0

func (hist *Histogram) AddMap(binMap map[string]string, binCount int)

AddMap provides a helper function to automatically create url encoded string keys. This can be used with `TableMap` to generate tables with arbitrary columns easily.

func (*Histogram) BinCount

func (hist *Histogram) BinCount(binName string) (int, error)

func (*Histogram) BinCountOrDefault added in v2.13.0

func (hist *Histogram) BinCountOrDefault(binName string, def int) int

func (*Histogram) BinNameExists

func (hist *Histogram) BinNameExists(binName string) bool

func (*Histogram) BinNames

func (hist *Histogram) BinNames() []string

func (*Histogram) FilterMapKeys added in v2.14.0

func (hist *Histogram) FilterMapKeys(mapKeysFilter []string) (*Histogram, error)

func (*Histogram) FlattenMapSingleKey added in v2.14.0

func (hist *Histogram) FlattenMapSingleKey(mapKeyFilter string) (*Histogram, error)

func (*Histogram) Inflate

func (hist *Histogram) Inflate()

func (*Histogram) ItemCount added in v2.11.2

func (hist *Histogram) ItemCount() uint

func (*Histogram) ItemCounts

func (hist *Histogram) ItemCounts(sortBy string) []maputil.Record

ItemCounts returns sorted item names and values.

func (*Histogram) ItemNames added in v2.12.0

func (hist *Histogram) ItemNames() []string

func (*Histogram) MapKeys added in v2.10.0

func (hist *Histogram) MapKeys() ([]string, error)

MapKeys returns a list of keys using query string keys.

func (*Histogram) MayKeyValues added in v2.11.0

func (hist *Histogram) MayKeyValues(key string, dedupe bool) ([]string, error)

MayKeyValues returns a list of keys using query string keys.

func (*Histogram) Stats

func (hist *Histogram) Stats() point.PointSet

func (*Histogram) Sum

func (hist *Histogram) Sum() int

func (*Histogram) Table

func (hist *Histogram) Table(colNameBinName, colNameBinCount string) *table.Table

func (*Histogram) TableMap added in v2.10.0

func (hist *Histogram) TableMap(mapCols []string, colNameBinCount string) (*table.Table, error)

TableMap is used to generate a table using map keys.

func (*Histogram) TransformBinNames

func (hist *Histogram) TransformBinNames(xfFunc func(input string) string) *Histogram

TransformBinNames modifies bin names and returns a new histogram.

func (*Histogram) TransformBinNamesMap

func (hist *Histogram) TransformBinNamesMap(xfMap map[string]string, matchType string) *Histogram

TransformBinNamesMap modifies bin names and returns a new histogram. `matchType` can be set to `prefix` to match name prefixes instead of exact match.

func (*Histogram) WriteTableASCII

func (hist *Histogram) WriteTableASCII(w io.Writer, header []string, sortBy string, inclTotal bool)

WriteTable writes an ASCII Table. For CLI apps, pass `os.Stdout` for `io.Writer`.

func (*Histogram) WriteXLSX

func (hist *Histogram) WriteXLSX(filename, sheetname, colNameBinName, colNameBinCount string) error

type HistogramAny added in v2.11.0

type HistogramAny interface {
	BinNames() []string
	ItemCount() uint
	ItemNames() []string
	Sum() int
}

type HistogramSet

type HistogramSet struct {
	Name         string
	HistogramMap map[string]*Histogram
	KeyIsTime    bool
}

func NewHistogramSet

func NewHistogramSet(name string) *HistogramSet

func NewHistogramSetWithData

func NewHistogramSetWithData(name string, data map[string]map[string]int) *HistogramSet

func (*HistogramSet) Add

func (hset *HistogramSet) Add(histName, binName string, binCount int)

Add provides an easy method to add a histogram bin name and count for an existing or new histogram in the set.

func (*HistogramSet) AddDateUIDCount

func (hset *HistogramSet) AddDateUIDCount(dt time.Time, uid string, count int)

func (*HistogramSet) BinNameExists

func (hset *HistogramSet) BinNameExists(binName string) bool

BinNameExists returns a boolean indicating if a bin name exists in any histogram.

func (*HistogramSet) BinNames

func (hset *HistogramSet) BinNames() []string

BinNames returns all the bin names used across all the histograms.

func (*HistogramSet) DatetimeKeyCount

func (hset *HistogramSet) DatetimeKeyCount() (timeseries.TimeSeries, error)

DatetimeKeyCount returns a TimeSeries when the first key is a RFC3339 time and a sum of items is desired per time.

func (*HistogramSet) DatetimeKeyCountTable

func (hset *HistogramSet) DatetimeKeyCountTable(interval timeutil.Interval, countColName string) (table.Table, error)

func (*HistogramSet) DatetimeKeyToQuarter

func (hset *HistogramSet) DatetimeKeyToQuarter(name string) (*HistogramSet, error)

DatetimeKeyToQuarter converts a HistogramSet by date to one by quarters.

func (*HistogramSet) HistogramBinNames

func (hset *HistogramSet) HistogramBinNames(setName string) []string

HistogramBinNames returns the bin names for a single histogram whose name is provided as a function parameter.

func (*HistogramSet) HistogramNameExists

func (hset *HistogramSet) HistogramNameExists(histName string) bool

HistogramNameExists returns a boolean indicating if the supplied histogram name exists.

func (*HistogramSet) HistogramSetTimeKeyCountWriteXLSX

func (hset *HistogramSet) HistogramSetTimeKeyCountWriteXLSX(filename string, interval timeutil.Interval, countColName string) error

func (*HistogramSet) ItemCount

func (hset *HistogramSet) ItemCount() uint

ItemCount returns the number of histograms.

func (*HistogramSet) ItemCounts

func (hset *HistogramSet) ItemCounts() *Histogram

ItemCounts returns the number of histograms.

func (*HistogramSet) ItemNames

func (hset *HistogramSet) ItemNames() []string

ItemNames returns the number of histograms.

func (*HistogramSet) LeafStats

func (hset *HistogramSet) LeafStats(name string) *Histogram

LeafStats returns a histogram by combining the histogram bins across histograms, removing the histogram distinction.

func (*HistogramSet) Sum added in v2.11.0

func (hset *HistogramSet) Sum() int

Sum returns the sum of all the histogram bin values.

func (*HistogramSet) Table added in v2.15.1

func (hset *HistogramSet) Table(colNameHist, colNameBin, colNameCount string) table.Table

func (*HistogramSet) TableMatrix

func (hset *HistogramSet) TableMatrix(tableName, histColName string) (*table.Table, error)

TableMatrix returns a `*table.Table` where the first column is the histogram name and the other columns are the bin names. This is useful for easy visualization of a table and also creating charts such as grouped bar charts.

func (*HistogramSet) ToTimeSeriesDistinct

func (hset *HistogramSet) ToTimeSeriesDistinct() (timeseries.TimeSeries, error)

func (*HistogramSet) TransformHistogramNames

func (hset *HistogramSet) TransformHistogramNames(xfFunc func(input string) string) *HistogramSet

TransformHistogramNames modifies histogram names and returns a new histogram set.

func (*HistogramSet) TransformHistogramNamesMap

func (hset *HistogramSet) TransformHistogramNamesMap(xfMap map[string]string, matchType string) *HistogramSet

TransformHistogramNamesMap modifies bin names and returns a new `HistogramSet`. `matchType` can be set to `prefix` to match name prefixes instead of exact match.

func (*HistogramSet) WriteXLSX

func (hset *HistogramSet) WriteXLSX(filename, sheetName, colName1, colName2, colNameCount string) error

WriteXLSX creates an XLSX file where the first column is the histogram name, the second column is the bin name and the third column is the bin count.

func (*HistogramSet) WriteXLSXMatrix

func (hset *HistogramSet) WriteXLSXMatrix(filename, sheetName, histColName string) error

WriteXLSXMatrix creates an XLSX file where the first column is the histogram name and the other columns are the bin names. This is useful for easy visualization of a table and also creating charts such as grouped bar charts.

type HistogramSetMetadata

type HistogramSetMetadata struct {
	Names          []string `json:"names,omitempty"`
	NameCount      int      `json:"nameCount,omitempty"`
	UniqueBinCount int      `json:"uniqueBinCount,omitempty"`
}

func NewHistogramSetMetadata

func NewHistogramSetMetadata(histSet *HistogramSet) *HistogramSetMetadata

type HistogramSets

type HistogramSets struct {
	Name            string
	HistogramSetMap map[string]*HistogramSet
}

func NewHistogramSets

func NewHistogramSets(name string) *HistogramSets

func NewHistogramSetsCSVs

func NewHistogramSetsCSVs(filenames []string, key1ColIdx, key2ColIdx, uidColIdx uint) (*HistogramSets, table.Table, error)

NewHistogramSetsCSVs expects multiple files to have same columns.

func NewHistogramSetsTable

func NewHistogramSetsTable(tbl table.Table, key1ColIdx, key2ColIdx, uidColIdx uint) (*HistogramSets, error)

func (*HistogramSets) Add

func (hsets *HistogramSets) Add(hsetName, histName, binName string, binCount int, trimSpace bool)

func (*HistogramSets) BinNames

func (hsets *HistogramSets) BinNames() []string

func (*HistogramSets) BinSumsByHset added in v2.10.0

func (hsets *HistogramSets) BinSumsByHset() *Histogram

func (*HistogramSets) Counts

func (hsets *HistogramSets) Counts() *HistogramSetsCounts

func (*HistogramSets) Flatten

func (hsets *HistogramSets) Flatten(name string) *HistogramSet

func (*HistogramSets) ItemCount

func (hsets *HistogramSets) ItemCount() uint

ItemCount returns the number of histogram sets.

func (*HistogramSets) ItemNames added in v2.12.0

func (hsets *HistogramSets) ItemNames() []string

func (*HistogramSets) Sum added in v2.11.0

func (hsets *HistogramSets) Sum() int

func (*HistogramSets) Table

func (hsets *HistogramSets) Table(tableName, colNameHSet, colNameHist, colNameBinName, colNameBinCount string) table.Table

func (*HistogramSets) TableMatrix

func (hsets *HistogramSets) TableMatrix(tableName, colNameHSet, colNameHist, colNameBinNamePrefix, colNameBinNameSuffix string) table.Table

TableMatrix returns a `*table.Table` where the first column is the histogram set name, the second column is the histogram name and the other columns are the bin names.

func (*HistogramSets) Visit

func (hsets *HistogramSets) Visit(visit func(hsetName, histName, binName string, binCount int))

func (*HistogramSets) WriteXLSX

func (hsets *HistogramSets) WriteXLSX(filename, sheetname, colNameHSet, colNameHist, colNameBinName, colNameBinCount string) error

func (*HistogramSets) WriteXLSXMatrix

func (hsets *HistogramSets) WriteXLSXMatrix(filename, sheetname, colNameHSet, colNameHist, colNameBinNamePrefix, colNameBinNameSuffix string) error

type HistogramSetsCounts

type HistogramSetsCounts struct {
	UIDCounts     map[string]map[string]uint
	UIDCountsKey1 map[string]uint
	UIDCountsKey2 map[string]uint
	Key1Names     []string
	Key2Names     []string
}

HistogramSetsCounts returns UID counts. When used with NewHistogramSetsCSV(), it can provide a sanity check for raw record counts against aggregate query values, e.g. compare counts of raw records to GROUP BY counts.

func NewHistogramSetsCounts

func NewHistogramSetsCounts(hsets HistogramSets) *HistogramSetsCounts

func (*HistogramSetsCounts) Inflate

func (hcounts *HistogramSetsCounts) Inflate()

Directories

Path Synopsis
examples

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL