analytica 0.0.20 → 0.0.21
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/analytica.rb +7 -1
- data/lib/visualization.rb +66 -9
- metadata +3 -3
data/lib/analytica.rb
CHANGED
@@ -4,7 +4,7 @@ require File.join(File.dirname(__FILE__), 'computation')
|
|
4
4
|
require File.join(File.dirname(__FILE__), 'visualization')
|
5
5
|
|
6
6
|
module Analytica
|
7
|
-
VERSION = '0.0.
|
7
|
+
VERSION = '0.0.21'
|
8
8
|
|
9
9
|
include Strict
|
10
10
|
|
@@ -31,6 +31,9 @@ module Analytica
|
|
31
31
|
|
32
32
|
def initialize(datapoints=[])
|
33
33
|
enforce!(:numeric_array, datapoints)
|
34
|
+
|
35
|
+
@custom = ""
|
36
|
+
@custom_set = false
|
34
37
|
|
35
38
|
@labels = {}
|
36
39
|
@labels_set = false
|
@@ -63,6 +66,9 @@ module Analytica
|
|
63
66
|
def initialize(datasets=[])
|
64
67
|
enforce!(:dataset_array, datasets)
|
65
68
|
|
69
|
+
@custom = ""
|
70
|
+
@custom_set = false
|
71
|
+
|
66
72
|
@labels = {}
|
67
73
|
@labels_set = false
|
68
74
|
|
data/lib/visualization.rb
CHANGED
@@ -8,11 +8,13 @@ module Analytica
|
|
8
8
|
def set_labels(params={})
|
9
9
|
enforce_map_defaults!({
|
10
10
|
:data => [],
|
11
|
-
:type => :
|
11
|
+
:type => :axis,
|
12
|
+
:style => :axis_tick,
|
12
13
|
:prefix => ' ',
|
13
14
|
:postfix => ' ',
|
14
15
|
:decimal => 0,
|
15
16
|
:color => '000000',
|
17
|
+
:tick_color => "333333",
|
16
18
|
:size => 10}, params)
|
17
19
|
|
18
20
|
enforce_primitive!(Array, params[:data])
|
@@ -22,18 +24,21 @@ module Analytica
|
|
22
24
|
:prefix => :string,
|
23
25
|
:decimal => :integer,
|
24
26
|
:color => :hex_color,
|
27
|
+
:tick_color => :hex_color,
|
28
|
+
:style => [:axis_tick, :axis_only, :tick_only, :none],
|
25
29
|
:size => :natural_number}, params)
|
26
30
|
|
27
31
|
@labels_set = true
|
28
32
|
|
29
33
|
@labels = {} if @labels.nil?
|
30
34
|
@labels[params[:type]] = {}
|
31
|
-
|
32
35
|
@labels[params[:type]][:prefix] = params[:prefix] == ' ' ? '' : params[:prefix]
|
33
36
|
@labels[params[:type]][:postfix] = params[:postfix] == ' ' ? '' : params[:postfix]
|
34
37
|
@labels[params[:type]][:decimal] = params[:decimal]
|
35
38
|
@labels[params[:type]][:color] = params[:color]
|
36
39
|
@labels[params[:type]][:size] = params[:size]
|
40
|
+
@labels[params[:type]][:style] = params[:style]
|
41
|
+
@labels[params[:type]][:tick_color] = params[:tick_color]
|
37
42
|
@labels[params[:type]][:data] = params[:data]
|
38
43
|
end
|
39
44
|
|
@@ -59,6 +64,14 @@ module Analytica
|
|
59
64
|
bar_settings
|
60
65
|
end
|
61
66
|
|
67
|
+
def add_custom(item)
|
68
|
+
enforce!(:string, item)
|
69
|
+
|
70
|
+
@custom_set = true
|
71
|
+
@custom += "&" if @custom.size > 0
|
72
|
+
@custom += item
|
73
|
+
end
|
74
|
+
|
62
75
|
def generate_title
|
63
76
|
options = {}
|
64
77
|
if @title_set
|
@@ -71,11 +84,7 @@ module Analytica
|
|
71
84
|
options = {}
|
72
85
|
if @labels_set
|
73
86
|
if @labels[:data]
|
74
|
-
@labels[:data][:data]
|
75
|
-
data_labels = {
|
76
|
-
:custom => "chm=N#{@labels[:data][:prefix]}*f#{@labels[:data][:decimal]}*#{@labels[:data][:postfix]},#{@labels[:data][:color]},0,-1,#{@labels[:data][:size]}&chds=0,#{datamax}"
|
77
|
-
}
|
78
|
-
options.merge!(data_labels)
|
87
|
+
add_custom("chm=N#{@labels[:data][:prefix]}*f#{@labels[:data][:decimal]}*#{@labels[:data][:postfix]},#{@labels[:data][:color]},0,-1,#{@labels[:data][:size]}&chds=0,#{datamax}")
|
79
88
|
end
|
80
89
|
|
81
90
|
if @labels[:axis]
|
@@ -83,28 +92,76 @@ module Analytica
|
|
83
92
|
:axis_with_labels => ['x', 'y'],
|
84
93
|
:axis_labels => [@labels[:axis][:data], ["#{0}", "#{(datamax*0.5).to_i}", "#{datamax.to_i}"]]
|
85
94
|
}
|
95
|
+
|
96
|
+
axis_style = case @labels[:axis][:style]
|
97
|
+
when :axis_tick
|
98
|
+
"lt"
|
99
|
+
when :axis_only
|
100
|
+
"l"
|
101
|
+
when :tick_only
|
102
|
+
"t"
|
103
|
+
when :none
|
104
|
+
"_"
|
105
|
+
end
|
106
|
+
|
107
|
+
add_custom("chxs=0N#{@labels[:axis][:prefix]}*f#{@labels[:axis][:decimal]}*#{@labels[:axis][:postfix]},#{@labels[:axis][:color]},#{@labels[:axis][:size]},#{axis_style},#{@labels[:axis][:tick_color]}|1N#{@labels[:axis][:prefix]}*f#{@labels[:axis][:decimal]}*#{@labels[:axis][:postfix]},#{@labels[:axis][:color]},#{@labels[:axis][:size]},#{axis_style},#{@labels[:axis][:tick_color]}") #http://code.google.com/apis/chart/docs/chart_params.html
|
86
108
|
options.merge!(axis_labels)
|
109
|
+
|
87
110
|
elsif @labels[:x_axis]
|
88
111
|
x_axis_label = {
|
89
|
-
:axis_with_labels => 'x',
|
112
|
+
:axis_with_labels => ['x'],
|
90
113
|
:axis_labels => @labels[:x_axis][:data].size == 0 ? self.map{|n|"#{n}"} : @labels[:x_axis][:data]
|
91
114
|
}
|
115
|
+
|
116
|
+
axis_style = case @labels[:x_axis][:style]
|
117
|
+
when :axis_tick
|
118
|
+
"lt"
|
119
|
+
when :axis_only
|
120
|
+
"l"
|
121
|
+
when :tick_only
|
122
|
+
"t"
|
123
|
+
when :none
|
124
|
+
"_"
|
125
|
+
end
|
126
|
+
|
127
|
+
add_custom("chxs=0N#{@labels[:x_axis][:prefix]}*f#{@labels[:x_axis][:decimal]}*#{@labels[:x_axis][:postfix]},#{@labels[:x_axis][:color]},#{@labels[:x_axis][:size]},#{axis_style},#{@labels[:x_axis][:tick_color]}") #http://code.google.com/apis/chart/docs/chart_params.html
|
92
128
|
options.merge!(x_axis_label)
|
93
129
|
elsif @labels[:y_axis]
|
94
130
|
y_axis_label = {
|
95
|
-
:axis_with_labels => 'y',
|
131
|
+
:axis_with_labels => ['y'],
|
96
132
|
:axis_labels => @labels[:y_axis][:data].size == 0 ? ["#{0}", "#{(datamax*0.5).to_i}", "#{datamax.to_i}"] : @labels[:y_axis][:data]
|
97
133
|
}
|
134
|
+
axis_style = case @labels[:y_axis][:style]
|
135
|
+
when :axis_tick
|
136
|
+
"lt"
|
137
|
+
when :axis_only
|
138
|
+
"l"
|
139
|
+
when :tick_only
|
140
|
+
"t"
|
141
|
+
when :none
|
142
|
+
"_"
|
143
|
+
end
|
144
|
+
|
145
|
+
add_custom("chxs=0N#{@labels[:y_axis][:prefix]}*f#{@labels[:y_axis][:decimal]}*#{@labels[:y_axis][:postfix]},#{@labels[:y_axis][:color]},#{@labels[:y_axis][:size]},#{axis_style},#{@labels[:y_axis][:tick_color]}") #http://code.google.com/apis/chart/docs/chart_params.html
|
98
146
|
options.merge!(y_axis_label)
|
99
147
|
end
|
100
148
|
end
|
101
149
|
options
|
102
150
|
end
|
103
151
|
|
152
|
+
def generate_custom
|
153
|
+
options = {
|
154
|
+
:custom => @custom
|
155
|
+
}
|
156
|
+
@custom = ""
|
157
|
+
options
|
158
|
+
end
|
159
|
+
|
104
160
|
def common_options
|
105
161
|
options = {}
|
106
162
|
options.merge!(generate_labels)
|
107
163
|
options.merge!(generate_title)
|
164
|
+
options.merge!(generate_custom)
|
108
165
|
options
|
109
166
|
end
|
110
167
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: analytica
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 53
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 21
|
10
|
+
version: 0.0.21
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Raeez Lorgat
|