Sha256: 1d34c6624dc71afa36e36283d69378eef600b8175fed8d8abef2e5895378ee06
Contents?: true
Size: 1.18 KB
Versions: 2
Compression:
Stored size: 1.18 KB
Contents
# frozen_string_literal: true module Gruff class Store class XYData < Struct.new(:label, :y_points, :color, :x_points) def initialize(label, y_points, color, x_points = nil) self.label = label.to_s self.y_points = Array(y_points) self.color = color self.x_points = Array(x_points) if x_points end def x_points self[:x_points] || Array.new(y_points.length) end def coordinates x_points.zip(y_points) end def columns y_points.length end def min y_points.compact.min end alias min_y min def max y_points.compact.max end alias max_y max def min_x x_points.compact.min end def max_x x_points.compact.max end def normalize(args = {}) norm_x_points = x_points.map do |x| x.nil? ? nil : (x.to_f - args[:minimum_x].to_f) / args[:spread_x] end norm_y_points = y_points.map do |y| y.nil? ? nil : (y.to_f - args[:minimum_y].to_f) / args[:spread_y] end self.class.new(label, norm_y_points, color, norm_x_points) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gruff-0.10.0 | lib/gruff/store/xy_data.rb |
gruff-0.10.0-java | lib/gruff/store/xy_data.rb |