class Spout::Models::Graphables::Histogram

Generates data for variable histograms

Public Instance Methods

categories() click to toggle source
# File lib/spout/models/graphables/histogram.rb, line 14
def categories
  if @variable.type == "choices"
    filtered_domain_options(@variable).collect(&:display_name)
  else
    @buckets.collect(&:display_name)
  end
end
series() click to toggle source
# File lib/spout/models/graphables/histogram.rb, line 26
def series
  @chart_variable.domain.options.collect do |option|
    visit_subjects = @subjects.select{ |s| s.send(@chart_variable.id) == option.value && !s.send(@variable.id).nil? && !s.send(@variable.id).is_a?(Spout::Models::Empty) } rescue visit_subjects = []
    visit_subject_values = visit_subjects.collect(&@variable.id.to_sym).sort # rescue visit_subject_values = []
    next unless visit_subject_values.size > 0

    data = []

    if @variable.type == "choices"
      data = filtered_domain_options(@variable).collect do |o|
        visit_subject_values.select { |v| v == o.value }.count
      end
    else
      visit_subject_values.group_by { |v| get_bucket(v) }.each do |key, values|
        data[categories.index(key)] = values.count if categories.index(key)
      end
    end

    { name: option.display_name, data: data }
  end.compact
end
title() click to toggle source
# File lib/spout/models/graphables/histogram.rb, line 10
def title
  @variable.display_name
end
units() click to toggle source
# File lib/spout/models/graphables/histogram.rb, line 22
def units
  "Subjects"
end
x_axis_title() click to toggle source
# File lib/spout/models/graphables/histogram.rb, line 48
def x_axis_title
  @variable.units
end