gruffy 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/gruffy/side_stacked_bar.rb +34 -5
- data/lib/gruffy/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b3383cf24e80b939ed4bb2e3f4bed4860622a6f
|
4
|
+
data.tar.gz: 4b4cb30018d3aedc7522de484548f71695c705bb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f29ff91e70e804a0e817dcda14520013289d3aefa221f20702e82467d7b73f0bf779d1ef5f67f5bbbaa5ec3e1b76203ab850b5656cdbe58b723cb0d8cbe8ebf
|
7
|
+
data.tar.gz: d30d43c525ee7b30818860cbf5067c59f73fe404f3f3ee78ee0f411500002f6c09741b6a38eba706e99b0a1eca6e6d85cb029f48bdc67d88eda9afc51ae17747
|
@@ -27,25 +27,53 @@ class Gruffy::SideStackedBar < Gruffy::SideBar
|
|
27
27
|
height = Array.new(@column_count, 0)
|
28
28
|
length = Array.new(@column_count, @graph_left)
|
29
29
|
padding = (@bar_width * (1 - @bar_spacing)) / 2
|
30
|
+
|
30
31
|
if @show_labels_for_bar_values
|
31
32
|
label_values = Array.new
|
32
33
|
0.upto(@column_count-1) {|i| label_values[i] = {:value => 0, :right_x => 0}}
|
33
34
|
end
|
34
|
-
|
35
|
+
|
36
|
+
difference_pixels = []
|
37
|
+
@norm_data.each do |data_row|
|
38
|
+
temps = []
|
35
39
|
data_row[DATA_VALUES_INDEX].each_with_index do |data_point, point_index|
|
40
|
+
temp1 = @graph_left + (@graph_width - data_point * @graph_width - height[point_index])
|
41
|
+
temp2 = @graph_left + @graph_width - height[point_index]
|
42
|
+
temps << (temp2 - temp1)
|
43
|
+
end
|
44
|
+
|
45
|
+
difference_pixels << temps
|
46
|
+
end
|
36
47
|
|
48
|
+
difference_count = 1
|
49
|
+
begin
|
50
|
+
temps = difference_pixels.first
|
51
|
+
difference_pixels.shift
|
52
|
+
difference_pixels.each {|t| temps = temps.zip(t) }
|
53
|
+
difference_count = temps.first.flatten.length
|
54
|
+
temps = temps.map {|r| r.flatten.sum }
|
55
|
+
difference_pixels = temps
|
56
|
+
rescue
|
57
|
+
end
|
58
|
+
|
59
|
+
@norm_data.each_with_index do |data_row, row_index|
|
60
|
+
data_row[DATA_VALUES_INDEX].each_with_index do |data_point, point_index|
|
37
61
|
## using the original calcs from the stacked bar chart to get the difference between
|
38
62
|
## part of the bart chart we wish to stack.
|
63
|
+
pixel_missing = ((@graph_width - difference_pixels[point_index].to_s.to_f) / difference_count)
|
64
|
+
|
39
65
|
temp1 = @graph_left + (@graph_width - data_point * @graph_width - height[point_index])
|
40
66
|
temp2 = @graph_left + @graph_width - height[point_index]
|
41
|
-
difference = temp2 - temp1
|
67
|
+
difference = temp2 - temp1 + pixel_missing
|
42
68
|
|
43
69
|
@d = @d.fill data_row[DATA_COLOR_INDEX]
|
44
70
|
|
45
|
-
left_x = length[point_index]
|
46
|
-
|
71
|
+
left_x = length[point_index]
|
72
|
+
left_y = @graph_top + (@bar_width * point_index) + padding
|
73
|
+
|
47
74
|
right_x = left_x + difference
|
48
|
-
|
75
|
+
right_y = left_y + @bar_width * @bar_spacing
|
76
|
+
|
49
77
|
length[point_index] += difference
|
50
78
|
height[point_index] += (data_point * @graph_width - 2)
|
51
79
|
|
@@ -68,6 +96,7 @@ class Gruffy::SideStackedBar < Gruffy::SideBar
|
|
68
96
|
end
|
69
97
|
|
70
98
|
end
|
99
|
+
|
71
100
|
if @show_labels_for_bar_values
|
72
101
|
label_values.each_with_index do |data, i|
|
73
102
|
val = (@label_formatting || "%.2f") % data[:value]
|
data/lib/gruffy/version.rb
CHANGED