Class: GerbilCharts::Models::SimpleTimeSeriesModelGroup
- Inherits:
-
GraphModelGroup
- Object
- GraphModelGroup
- GerbilCharts::Models::SimpleTimeSeriesModelGroup
- 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
-
#discrete_range ⇒ Object
readonly
Returns the value of attribute discrete_range.
Attributes inherited from GraphModelGroup
#annotations, #emptycaption, #href, #models, #name, #range_bands, #ref_models, #units, #x_markers
Instance Method Summary collapse
-
#effective_round_range_x ⇒ Object
return a discrete range for the X items (timeseries).
-
#initialize(opts) ⇒ SimpleTimeSeriesModelGroup
constructor
Create the model group.
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_range ⇒ Object (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_x ⇒ Object
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 |