Class: GerbilCharts::Models::SimpleTimeSeriesModelGroup

Inherits:
GraphModelGroup show all
Defined in:
lib/gerbilcharts/models/simple_timeseries_model_group.rb

Overview

SimpleTimeSeriesModelGroup

A quick way to create a model group and models using a single statement. This works if all models have data points at fixed times.

Example code :

 my_modelgroup = GerbilCharts::Models::SimpleTimeSeriesModelGroup.new 
                 (
          :title => "Sales figures",
            :timeseries  =>  (1..6).collect { |month| Time.local(2008,month) },
            :models =>       [  ["Bruce", 1, 10, 18, 28, 80,  122],
                      ["Rex"  , 12,22, 45, 70, 218, 109],
                      ["Buzo" , 0, 23, 25, 40, 18,  59]   
                                      ]

)

Instance Attribute Summary collapse

Attributes inherited from GraphModelGroup

#annotations, #emptycaption, #href, #models, #name, #range_bands, #ref_models, #units, #x_markers

Instance Method Summary collapse

Methods inherited from GraphModelGroup

#<<, #add, #clear_models, #compact_models, #contentKey, #count, #cumulative_round_range, #cumulative_round_range_y, #cumulative_round_range_y0, #cumulative_sweep_round_range_y0, #delete, #delete_by_index, #each_model, #each_model_with_index, #each_user_data, #effective_range_x, #effective_range_y, #effective_round_range, #effective_round_range_y, #effective_round_range_y0, #empty?, #empty_caption, #find_model, #hasHref?, #has_x_markers?, #models_digest, #randomizeModels, #recreateModels, #setHref, #setSessionKey, #set_null, #sort, #sweep_interval

Constructor Details

#initialize(opts) ⇒ SimpleTimeSeriesModelGroup

Create the model group

title

The name of the modelgroup, shows up as chart title (eg, “Sales Figures”)

timeseries

An array of Time objects representing each datapoint

models] An array of models (array of name followed by values) eg, [ “Bruce”, 0.1, 2.3, etc

All three are required parameters. If you want more flexibility then use a GraphModelGroup object directly. See SimpleTimeseriesModelGroup documentation for an example.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/gerbilcharts/models/simple_timeseries_model_group.rb', line 33

def initialize(opts)

  raise "Required parameter :title missing" unless opts[:title]
  raise "Required array parameter :timeseries missing" unless opts[:timeseries]
  raise "Required models missing" unless opts[:models]

  super(opts[:title])

  # user supplied 
  tvals = opts[:timeseries]
  modelitems = opts[:models]

  # create a timeseries graph model using user supplied data
  modelitems.each do |mitem|
mod = TimeSeriesGraphModel.new( mitem.shift ) 
mitem.each_with_index do | datapt, idx |
  mod.add(tvals[idx], datapt)  if idx < tvals.size
end
add(mod)
  end

  # a discrete range object 
  @discrete_range = DiscreteTimeRange.new(tvals)

end

Instance Attribute Details

#discrete_rangeObject (readonly)

Returns the value of attribute discrete_range.



22
23
24
# File 'lib/gerbilcharts/models/simple_timeseries_model_group.rb', line 22

def discrete_range
  @discrete_range
end

Instance Method Details

#effective_round_range_xObject

return a discrete range for the X items (timeseries)



60
61
62
# File 'lib/gerbilcharts/models/simple_timeseries_model_group.rb', line 60

def effective_round_range_x
  return @discrete_range
end