Sha256: 6d4a4ce9ad8636de98135b05597f98c8bf579fca88b64f8eb2c73b49eeb1258f
Contents?: true
Size: 1.43 KB
Versions: 2
Compression:
Stored size: 1.43 KB
Contents
module RubyvisCharts class GroupedBarTimelineChart < AbstractTimelineChart module DefaultArguments BARS_PADDING = Padding.new(right: 0.5, left: 0.5) BARS_COLORS = ['#4d79da'].freeze end HALF_VALUE = 2 attr_reader :bars_padding, :bars_colors def initialize( bars_padding: DefaultArguments::BARS_PADDING, bars_colors: DefaultArguments::BARS_COLORS, **other ) super(other) @bars_padding = bars_padding @bars_colors = bars_colors initialize_bars! end private def initialize_bars! chart = self bar_left_indent = -> do bar_width = chart.send(:bars_widths).range_band / HALF_VALUE colors = chart.send(:bars_colors) left_padding = chart.bars_padding.left self.index * bar_width - (self.index % colors.length) * (bar_width - left_padding * HALF_VALUE) + left_padding end fill_style_colors = -> { chart.send(:bars_colors_iterator, self.index, self.height, chart.bars_colors) } @layer_timeline.add(Rubyvis::Bar) .data(values) .width(bars_widths.range_band - (bars_padding.right + bars_padding.left) * HALF_VALUE) .height(bars_heights) .left(bar_left_indent) .bottom(0) .fillStyle(fill_style_colors) end def bars_widths @bars_widths ||= Rubyvis::Scale.ordinal(Rubyvis.range(values.length / HALF_VALUE)).split_banded(0, timeline_width) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rubyvis_charts-0.1.5 | lib/rubyvis_charts/grouped_bar_timeline_chart.rb |
rubyvis_charts-0.1.3 | lib/rubyvis_charts/grouped_bar_timeline_chart.rb |