schapht-gruff 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +111 -0
- data/MIT-LICENSE +21 -0
- data/Manifest.txt +79 -0
- data/README.txt +40 -0
- data/Rakefile +55 -0
- data/assets/bubble.png +0 -0
- data/assets/city_scene/background/0000.png +0 -0
- data/assets/city_scene/background/0600.png +0 -0
- data/assets/city_scene/background/2000.png +0 -0
- data/assets/city_scene/clouds/cloudy.png +0 -0
- data/assets/city_scene/clouds/partly_cloudy.png +0 -0
- data/assets/city_scene/clouds/stormy.png +0 -0
- data/assets/city_scene/grass/default.png +0 -0
- data/assets/city_scene/haze/true.png +0 -0
- data/assets/city_scene/number_sample/1.png +0 -0
- data/assets/city_scene/number_sample/2.png +0 -0
- data/assets/city_scene/number_sample/default.png +0 -0
- data/assets/city_scene/sky/0000.png +0 -0
- data/assets/city_scene/sky/0200.png +0 -0
- data/assets/city_scene/sky/0400.png +0 -0
- data/assets/city_scene/sky/0600.png +0 -0
- data/assets/city_scene/sky/0800.png +0 -0
- data/assets/city_scene/sky/1000.png +0 -0
- data/assets/city_scene/sky/1200.png +0 -0
- data/assets/city_scene/sky/1400.png +0 -0
- data/assets/city_scene/sky/1500.png +0 -0
- data/assets/city_scene/sky/1700.png +0 -0
- data/assets/city_scene/sky/2000.png +0 -0
- data/assets/pc306715.jpg +0 -0
- data/assets/plastik/blue.png +0 -0
- data/assets/plastik/green.png +0 -0
- data/assets/plastik/red.png +0 -0
- data/init.rb +2 -0
- data/lib/gruff.rb +27 -0
- data/lib/gruff/accumulator_bar.rb +27 -0
- data/lib/gruff/area.rb +58 -0
- data/lib/gruff/bar.rb +84 -0
- data/lib/gruff/bar_conversion.rb +46 -0
- data/lib/gruff/base.rb +1112 -0
- data/lib/gruff/bullet.rb +109 -0
- data/lib/gruff/deprecated.rb +39 -0
- data/lib/gruff/line.rb +105 -0
- data/lib/gruff/mini/bar.rb +32 -0
- data/lib/gruff/mini/legend.rb +77 -0
- data/lib/gruff/mini/pie.rb +36 -0
- data/lib/gruff/mini/side_bar.rb +35 -0
- data/lib/gruff/net.rb +142 -0
- data/lib/gruff/photo_bar.rb +100 -0
- data/lib/gruff/pie.rb +124 -0
- data/lib/gruff/scene.rb +209 -0
- data/lib/gruff/side_bar.rb +115 -0
- data/lib/gruff/side_stacked_bar.rb +74 -0
- data/lib/gruff/spider.rb +130 -0
- data/lib/gruff/stacked_area.rb +67 -0
- data/lib/gruff/stacked_bar.rb +54 -0
- data/lib/gruff/stacked_mixin.rb +23 -0
- data/rails_generators/gruff/gruff_generator.rb +63 -0
- data/rails_generators/gruff/templates/controller.rb +32 -0
- data/rails_generators/gruff/templates/functional_test.rb +24 -0
- data/test/gruff_test_case.rb +123 -0
- data/test/test_accumulator_bar.rb +50 -0
- data/test/test_area.rb +134 -0
- data/test/test_bar.rb +283 -0
- data/test/test_base.rb +8 -0
- data/test/test_bullet.rb +26 -0
- data/test/test_legend.rb +68 -0
- data/test/test_line.rb +513 -0
- data/test/test_mini_bar.rb +32 -0
- data/test/test_mini_pie.rb +20 -0
- data/test/test_mini_side_bar.rb +37 -0
- data/test/test_net.rb +230 -0
- data/test/test_photo.rb +41 -0
- data/test/test_pie.rb +154 -0
- data/test/test_scene.rb +100 -0
- data/test/test_side_bar.rb +12 -0
- data/test/test_sidestacked_bar.rb +89 -0
- data/test/test_spider.rb +216 -0
- data/test/test_stacked_area.rb +52 -0
- data/test/test_stacked_bar.rb +52 -0
- metadata +160 -0
data/test/test_scene.rb
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + "/gruff_test_case"
|
4
|
+
require 'yaml'
|
5
|
+
|
6
|
+
class LayerStub < Gruff::Layer; attr_reader :base_dir, :filenames, :selected_filename; end
|
7
|
+
|
8
|
+
class TestGruffScene < GruffTestCase
|
9
|
+
|
10
|
+
def test_hazy
|
11
|
+
g = setup_scene
|
12
|
+
g.weather = "cloudy"
|
13
|
+
g.haze = true
|
14
|
+
g.time = Time.mktime(2006, 7, 4, 4, 35)
|
15
|
+
g.write "test/output/scene_hazy_night.png"
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_stormy_night
|
19
|
+
g = setup_scene
|
20
|
+
g.weather = "stormy"
|
21
|
+
g.time = Time.mktime(2006, 7, 4, 0, 0)
|
22
|
+
g.write "test/output/scene_stormy_night.png"
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
def test_not_hazy
|
27
|
+
g = setup_scene
|
28
|
+
g.weather = "cloudy"
|
29
|
+
g.haze = false
|
30
|
+
g.time = Time.mktime(2006, 7, 4, 6, 00)
|
31
|
+
g.write "test/output/scene_not_hazy_day.png"
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_partly_cloudy
|
35
|
+
g = setup_scene
|
36
|
+
g.weather = "partly cloudy"
|
37
|
+
g.haze = false
|
38
|
+
g.time = Time.mktime(2006, 7, 4, 13, 00)
|
39
|
+
g.write "test/output/scene_partly_cloudy_day.png"
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
def test_stormy_day
|
44
|
+
g = setup_scene
|
45
|
+
g.weather = "stormy"
|
46
|
+
g.haze = false
|
47
|
+
g.time = Time.mktime(2006, 7, 4, 8, 00)
|
48
|
+
g.write "test/output/scene_stormy_day.png"
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
def test_layer
|
53
|
+
l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "clouds")
|
54
|
+
assert_equal %w(cloudy.png partly_cloudy.png stormy.png), l.filenames
|
55
|
+
|
56
|
+
l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "grass")
|
57
|
+
assert_equal 'default.png', l.selected_filename
|
58
|
+
|
59
|
+
l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "sky")
|
60
|
+
l.update Time.mktime(2006, 7, 4, 12, 35) # 12:35, July 4, 2006
|
61
|
+
assert_equal '1200.png', l.selected_filename
|
62
|
+
|
63
|
+
l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "sky")
|
64
|
+
l.update Time.mktime(2006, 7, 4, 0, 0) # 00:00, July 4, 2006
|
65
|
+
assert_equal '0000.png', l.selected_filename
|
66
|
+
|
67
|
+
l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "sky")
|
68
|
+
l.update Time.mktime(2006, 7, 4, 23, 35) # 23:35, July 4, 2006
|
69
|
+
assert_equal '2000.png', l.selected_filename
|
70
|
+
|
71
|
+
l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "sky")
|
72
|
+
l.update Time.mktime(2006, 7, 4, 0, 1) # 00:01, July 4, 2006
|
73
|
+
assert_equal '0000.png', l.selected_filename
|
74
|
+
|
75
|
+
l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "sky")
|
76
|
+
l.update Time.mktime(2006, 7, 4, 2, 0) # 02:00, July 4, 2006
|
77
|
+
assert_equal '0200.png', l.selected_filename
|
78
|
+
|
79
|
+
l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "sky")
|
80
|
+
l.update Time.mktime(2006, 7, 4, 4, 00) # 04:00, July 4, 2006
|
81
|
+
assert_equal '0400.png', l.selected_filename
|
82
|
+
|
83
|
+
# TODO Need number_sample folder
|
84
|
+
# l = LayerStub.new(File.expand_path("../assets/city_scene", File.dirname(__FILE__)), "number_sample")
|
85
|
+
# assert_equal %w(1.png 2.png default.png), l.filenames
|
86
|
+
# l.update 3
|
87
|
+
# assert_equal 'default.png', l.selected_filename
|
88
|
+
end
|
89
|
+
|
90
|
+
private
|
91
|
+
|
92
|
+
def setup_scene
|
93
|
+
g = Gruff::Scene.new("500x100", File.expand_path("../assets/city_scene", File.dirname(__FILE__)) )
|
94
|
+
g.layers = %w(background haze sky clouds)
|
95
|
+
g.weather_group = %w(clouds)
|
96
|
+
g.time_group = %w(background sky)
|
97
|
+
g
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + "/gruff_test_case"
|
4
|
+
|
5
|
+
class TestGruffSideStackedBar < GruffTestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@datasets = [
|
9
|
+
[:Jimmy, [25, 36, 86, 39]],
|
10
|
+
[:Charles, [80, 54, 67, 54]],
|
11
|
+
[:Julie, [22, 29, 35, 38]],
|
12
|
+
#[:Jane, [95, 95, 95, 90, 85, 80, 88, 100]],
|
13
|
+
#[:Philip, [90, 34, 23, 12, 78, 89, 98, 88]],
|
14
|
+
#["Arthur", [5, 10, 13, 11, 6, 16, 22, 32]],
|
15
|
+
]
|
16
|
+
@sample_labels = {
|
17
|
+
0 => '5/6',
|
18
|
+
1 => '5/15',
|
19
|
+
2 => '5/24'
|
20
|
+
}
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_bar_graph
|
25
|
+
g = Gruff::SideStackedBar.new
|
26
|
+
g.title = "Visual Stacked Bar Graph Test"
|
27
|
+
g.labels = {
|
28
|
+
0 => '5/6',
|
29
|
+
1 => '5/15',
|
30
|
+
2 => '5/24',
|
31
|
+
3 => '5/30',
|
32
|
+
}
|
33
|
+
@datasets.each do |data|
|
34
|
+
g.data(data[0], data[1])
|
35
|
+
end
|
36
|
+
g.write "test/output/side_stacked_bar_keynote.png"
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
def test_bar_graph_small
|
41
|
+
g = Gruff::SideStackedBar.new(400)
|
42
|
+
g.title = "Visual Stacked Bar Graph Test"
|
43
|
+
g.labels = {
|
44
|
+
0 => '5/6',
|
45
|
+
1 => '5/15',
|
46
|
+
2 => '5/24',
|
47
|
+
3 => '5/30',
|
48
|
+
}
|
49
|
+
@datasets.each do |data|
|
50
|
+
g.data(data[0], data[1])
|
51
|
+
end
|
52
|
+
g.write "test/output/side_stacked_bar_keynote_small.png"
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_wide
|
56
|
+
g = setup_basic_graph('800x400')
|
57
|
+
g.title = "Wide SSBar"
|
58
|
+
g.write "test/output/side_stacked_bar_wide.png"
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_should_space_long_left_labels_appropriately
|
62
|
+
g = Gruff::SideStackedBar.new
|
63
|
+
g.title = "Stacked Bar Long Label"
|
64
|
+
g.labels = {
|
65
|
+
0 => 'September',
|
66
|
+
1 => 'Oct',
|
67
|
+
2 => 'Nov',
|
68
|
+
3 => 'Dec',
|
69
|
+
}
|
70
|
+
@datasets.each do |data|
|
71
|
+
g.data(data[0], data[1])
|
72
|
+
end
|
73
|
+
g.write "test/output/side_stacked_bar_long_label.png"
|
74
|
+
end
|
75
|
+
|
76
|
+
protected
|
77
|
+
|
78
|
+
def setup_basic_graph(size=800)
|
79
|
+
g = Gruff::SideStackedBar.new(size)
|
80
|
+
g.title = "My Graph Title"
|
81
|
+
g.labels = @sample_labels
|
82
|
+
@datasets.each do |data|
|
83
|
+
g.data(data[0], data[1])
|
84
|
+
end
|
85
|
+
return g
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
data/test/test_spider.rb
ADDED
@@ -0,0 +1,216 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + "/gruff_test_case"
|
4
|
+
|
5
|
+
class TestGruffSpider < GruffTestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@datasets = [
|
9
|
+
[:Strength, [10]],
|
10
|
+
[:Dexterity, [16]],
|
11
|
+
[:Constitution, [12]],
|
12
|
+
[:Intelligence, [12]],
|
13
|
+
[:Wisdom, [10]],
|
14
|
+
["Charisma", [16]],
|
15
|
+
]
|
16
|
+
|
17
|
+
# @datasets = [
|
18
|
+
# [:Darren, [25]],
|
19
|
+
# [:Chris, [80]],
|
20
|
+
# [:Egbert, [22]],
|
21
|
+
# [:Adam, [95]],
|
22
|
+
# [:Bill, [90]],
|
23
|
+
# ["Frank", [5]],
|
24
|
+
# ["Zero", [0]],
|
25
|
+
# ]
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_spider_graph
|
29
|
+
g = Gruff::Spider.new(20)
|
30
|
+
g.title = "Spider Graph Test"
|
31
|
+
@datasets.each do |data|
|
32
|
+
g.data(data[0], data[1])
|
33
|
+
end
|
34
|
+
|
35
|
+
# Default theme
|
36
|
+
g.write("test/output/spider_keynote.png")
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_pie_graph_small
|
40
|
+
g = Gruff::Spider.new(20, 400)
|
41
|
+
g.title = "Visual Spider Graph Test Small"
|
42
|
+
@datasets.each do |data|
|
43
|
+
g.data(data[0], data[1])
|
44
|
+
end
|
45
|
+
|
46
|
+
# Default theme
|
47
|
+
g.write("test/output/spider_small.png")
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_spider_graph_nearly_equal
|
51
|
+
g = Gruff::Spider.new(50)
|
52
|
+
g.title = "Spider Graph Nearly Equal"
|
53
|
+
|
54
|
+
g.data(:Blake, [41])
|
55
|
+
g.data(:Aaron, [42])
|
56
|
+
g.data(:Grouch, [40])
|
57
|
+
# g.data(:Snuffleupagus, [43])
|
58
|
+
|
59
|
+
g.write("test/output/spider_nearly_equal.png")
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_pie_graph_equal
|
63
|
+
g = Gruff::Spider.new(50)
|
64
|
+
g.title = "Spider Graph Equal"
|
65
|
+
|
66
|
+
g.data(:Bert, [41])
|
67
|
+
g.data(:Adam, [41])
|
68
|
+
g.data(:Joe, [41])
|
69
|
+
|
70
|
+
g.write("test/output/spider_equal.png")
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_pie_graph_zero
|
74
|
+
g = Gruff::Spider.new(2)
|
75
|
+
g.title = "Pie Graph Two One Zero"
|
76
|
+
|
77
|
+
g.data(:Bert, [0])
|
78
|
+
g.data(:Adam, [1])
|
79
|
+
g.data(:Sam, [2])
|
80
|
+
|
81
|
+
g.write("test/output/spider_zero.png")
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_wide
|
85
|
+
g = setup_basic_graph('800x400')
|
86
|
+
g.title = "Wide spider"
|
87
|
+
g.write("test/output/spider_wide.png")
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_label_size
|
91
|
+
g = setup_basic_graph()
|
92
|
+
g.title = "Spider With Small Legend"
|
93
|
+
g.legend_font_size = 10
|
94
|
+
g.write("test/output/spider_legend.png")
|
95
|
+
|
96
|
+
g = setup_basic_graph(400)
|
97
|
+
g.title = "Small spider With Small Legend"
|
98
|
+
g.legend_font_size = 10
|
99
|
+
g.write("test/output/spider_legend_small.png")
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_theme_37signals
|
103
|
+
g = Gruff::Spider.new(20)
|
104
|
+
g.title = "Spider Graph Test"
|
105
|
+
@datasets.each do |data|
|
106
|
+
g.data(data[0], data[1])
|
107
|
+
end
|
108
|
+
|
109
|
+
g.theme_37signals
|
110
|
+
|
111
|
+
# Default theme
|
112
|
+
g.write("test/output/spider_37signals.png")
|
113
|
+
end
|
114
|
+
|
115
|
+
def test_no_axes
|
116
|
+
g = Gruff::Spider.new(20)
|
117
|
+
g.title = "Look ma, no axes"
|
118
|
+
g.hide_axes = true
|
119
|
+
@datasets.each do |data|
|
120
|
+
g.data(data[0], data[1])
|
121
|
+
end
|
122
|
+
g.write("test/output/spider_no_axes.png")
|
123
|
+
|
124
|
+
end
|
125
|
+
|
126
|
+
def test_no_print
|
127
|
+
g = Gruff::Spider.new(20)
|
128
|
+
g.title = "Should not print"
|
129
|
+
g.hide_text = true
|
130
|
+
@datasets.each do |data|
|
131
|
+
g.data(data[0], data[1])
|
132
|
+
end
|
133
|
+
g.write("test/output/spider_no_print.png")
|
134
|
+
end
|
135
|
+
|
136
|
+
def test_transparency
|
137
|
+
g = Gruff::Spider.new(20)
|
138
|
+
g.title = "Transparent background"
|
139
|
+
g.hide_text = true
|
140
|
+
g.transparent_background = true
|
141
|
+
g.hide_axes = true
|
142
|
+
@datasets.each do |data|
|
143
|
+
g.data(data[0], data[1])
|
144
|
+
end
|
145
|
+
g.write("test/output/spider_no_background.png")
|
146
|
+
end
|
147
|
+
|
148
|
+
def test_overlay
|
149
|
+
g = Gruff::Spider.new(20)
|
150
|
+
g.title = "George (blue) vs Sarah (white)"
|
151
|
+
@datasets.each do |data|
|
152
|
+
g.data(data[0], data[1])
|
153
|
+
end
|
154
|
+
g.write("test/output/spider_overlay_1.png")
|
155
|
+
|
156
|
+
g = Gruff::Spider.new(20)
|
157
|
+
g.title = "Transparent background"
|
158
|
+
g.hide_text = true
|
159
|
+
g.hide_axes = true
|
160
|
+
g.transparent_background = true
|
161
|
+
@datasets = [
|
162
|
+
[:Strength, [18]],
|
163
|
+
[:Dexterity, [10]],
|
164
|
+
[:Constitution, [18]],
|
165
|
+
[:Intelligence, [8]],
|
166
|
+
[:Wisdom, [14]],
|
167
|
+
["Charisma", [4]],
|
168
|
+
]
|
169
|
+
@datasets.each do |data|
|
170
|
+
g.data(data[0], data[1])
|
171
|
+
end
|
172
|
+
g.marker_color = "#4F6EFF"
|
173
|
+
g.write("test/output/spider_overlay_2.png")
|
174
|
+
end
|
175
|
+
|
176
|
+
def test_lots_of_data
|
177
|
+
g = Gruff::Spider.new(10)
|
178
|
+
@datasets = [[:a, [1]], [:b, [5]], [:c, [3]], [:d, [9]], [:e, [4]],
|
179
|
+
[:f, [7]], [:g, [0]], [:h, [4]], [:i, [6]], [:j, [0]],
|
180
|
+
[:k, [4]], [:l, [8]]]
|
181
|
+
|
182
|
+
@datasets.each do |data|
|
183
|
+
g.data(data[0], data[1])
|
184
|
+
end
|
185
|
+
|
186
|
+
g.title = "Sample Data"
|
187
|
+
g.write("test/output/spider_lots_of_data.png")
|
188
|
+
end
|
189
|
+
|
190
|
+
def test_lots_of_data_with_large_names
|
191
|
+
g = Gruff::Spider.new(10)
|
192
|
+
@datasets = [[:anteaters, [1]], [:bulls, [5]], [:cats, [3]], [:dogs, [9]], [:elephants, [4]],
|
193
|
+
[:frogs, [7]], [:giraffes, [0]], [:hamsters, [4]], [:iguanas, [6]],
|
194
|
+
[:jaguar, [0]], [:kangaroo, [4]], [:locust, [8]]]
|
195
|
+
|
196
|
+
@datasets.each do |data|
|
197
|
+
g.data(data[0], data[1])
|
198
|
+
end
|
199
|
+
|
200
|
+
g.title = "Zoo Inventory"
|
201
|
+
g.write("test/output/spider_lots_of_data_normal_names.png")
|
202
|
+
end
|
203
|
+
|
204
|
+
|
205
|
+
protected
|
206
|
+
|
207
|
+
def setup_basic_graph(size=800, max = 20)
|
208
|
+
g = Gruff::Spider.new(max, size)
|
209
|
+
g.title = "My Graph Title"
|
210
|
+
@datasets.each do |data|
|
211
|
+
g.data(data[0], data[1])
|
212
|
+
end
|
213
|
+
return g
|
214
|
+
end
|
215
|
+
|
216
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + "/gruff_test_case"
|
4
|
+
|
5
|
+
class TestGruffStackedArea < GruffTestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@datasets = [
|
9
|
+
[:Jimmy, [25, 36, 86, 39]],
|
10
|
+
[:Charles, [80, 54, 67, 54]],
|
11
|
+
[:Julie, [22, 29, 35, 38]],
|
12
|
+
]
|
13
|
+
@sample_labels = {
|
14
|
+
0 => '5/6',
|
15
|
+
1 => '5/15',
|
16
|
+
2 => '5/24'
|
17
|
+
}
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_area_graph
|
22
|
+
g = Gruff::StackedArea.new
|
23
|
+
g.title = "Visual Stacked Area Graph Test"
|
24
|
+
g.labels = {
|
25
|
+
0 => '5/6',
|
26
|
+
1 => '5/15',
|
27
|
+
2 => '5/24',
|
28
|
+
3 => '5/30',
|
29
|
+
}
|
30
|
+
@datasets.each do |data|
|
31
|
+
g.data(data[0], data[1])
|
32
|
+
end
|
33
|
+
g.write "test/output/stacked_area_keynote.png"
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
def test_area_graph_small
|
38
|
+
g = Gruff::StackedArea.new(400)
|
39
|
+
g.title = "Visual Stacked Area Graph Test"
|
40
|
+
g.labels = {
|
41
|
+
0 => '5/6',
|
42
|
+
1 => '5/15',
|
43
|
+
2 => '5/24',
|
44
|
+
3 => '5/30',
|
45
|
+
}
|
46
|
+
@datasets.each do |data|
|
47
|
+
g.data(data[0], data[1])
|
48
|
+
end
|
49
|
+
g.write "test/output/stacked_area_keynote_small.png"
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|