svg-graph 2.1.2 → 2.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2b402bac1f075fc4fc1a67ffcdc113f39594c80a
4
- data.tar.gz: c1eceab98a933da3ff83e28dca1d7dfa68327600
3
+ metadata.gz: e90898ce4dcd05963231c3079d62310773f6d5fd
4
+ data.tar.gz: 8a3008024055118d688581ff05b09e572d78e35b
5
5
  SHA512:
6
- metadata.gz: ed49ba27640773bad9f5c1f2853c134e882e3ebb373df57a32f9fcf63532ad01aa7f4255e4b9bedb2ad0dde4e08393d77359185bcaed8f961d2b4d594ed6f93f
7
- data.tar.gz: a5c059786637278c40f686a14661e5a94ebcebbd7d0ebe969d9d5e383aa6bdcb9da47ac96573e3f4f525e8b52510a1056a169c75b66d4d2439c8a9b664b545d9
6
+ metadata.gz: c8b0aa6aafcbf93f64b3410d28d9a8f22b38ecaac4953cdb0d0e577d090f3f6a5772f7340cec6a3e259f43b4318e4ce35cc4bed35f5ca9776501b95a1efe7a5b
7
+ data.tar.gz: 1f556e4a745c961400275e1cb5dbafaa5ac22ef9a23caed138bc12c338c473897c46bb9e2af20396928196b63a87d061d7f953ccff161b8f50725d37340bf6e8
@@ -1,6 +1,13 @@
1
1
  TODO / Backlog
2
2
  * add unit tests for all types of graphs
3
3
  * refactor various hardcoded constant pixel offsets in Graph class to use named constants or variables
4
+ * add support for c3js / d3js based graphs, see http://c3js.org/
5
+
6
+ === 2.2.0 / todo
7
+
8
+
9
+ === 2.1.3 / 2017-12-27
10
+ * fixes float comparison and color for pie chart [thanks tiwi, pull request #7]
4
11
 
5
12
  === 2.1.2 / 2017-02-26
6
13
  * show_key_actual_values in pie chart lets user chose to show values in key [thanks olegsfinest, pull request #5]
@@ -3,30 +3,30 @@ require_relative 'Graph'
3
3
  module SVG
4
4
  module Graph
5
5
  # === Create presentation quality SVG pie graphs easily
6
- #
6
+ #
7
7
  # == Synopsis
8
- #
8
+ #
9
9
  # require 'SVG/Graph/Pie'
10
- #
10
+ #
11
11
  # fields = %w(Jan Feb Mar)
12
12
  # data_sales_02 = [12, 45, 21]
13
- #
13
+ #
14
14
  # graph = SVG::Graph::Pie.new({
15
15
  # :height => 500,
16
16
  # :width => 300,
17
17
  # :fields => fields,
18
18
  # })
19
- #
19
+ #
20
20
  # graph.add_data({
21
21
  # :data => data_sales_02,
22
22
  # :title => 'Sales 2002',
23
23
  # })
24
- #
24
+ #
25
25
  # print "Content-type: image/svg+xml\r\n\r\n"
26
26
  # print graph.burn();
27
- #
27
+ #
28
28
  # == Description
29
- #
29
+ #
30
30
  # This object aims to allow you to easily create high quality
31
31
  # SVG pie graphs. You can either use the default style sheet
32
32
  # or supply your own. Either way there are many options which can
@@ -35,9 +35,9 @@ module SVG
35
35
  # title, subtitle etc.
36
36
  #
37
37
  # = Examples
38
- #
38
+ #
39
39
  # http://www.germane-software/repositories/public/SVG/test/single.rb
40
- #
40
+ #
41
41
  # == See also
42
42
  #
43
43
  # * SVG::Graph::Graph
@@ -73,8 +73,8 @@ module SVG
73
73
  def set_defaults
74
74
  init_with(
75
75
  :show_shadow => true,
76
- :shadow_offset => 10,
77
-
76
+ :shadow_offset => 10,
77
+
78
78
  :show_data_labels => false,
79
79
  :show_actual_values => false,
80
80
  :show_percent => true,
@@ -82,11 +82,11 @@ module SVG
82
82
  :show_key_data_labels => true,
83
83
  :show_key_actual_values => true,
84
84
  :show_key_percent => false,
85
-
85
+
86
86
  :expanded => false,
87
87
  :expand_greatest => false,
88
88
  :expand_gap => 10,
89
-
89
+
90
90
  :show_x_labels => false,
91
91
  :show_y_labels => false,
92
92
  :datapoint_font_size => 12
@@ -110,7 +110,7 @@ module SVG
110
110
  # graph.add_data( { :data => [3,5,8,13] } )
111
111
  #
112
112
  # nil values in the array will be replaced by 0
113
- #
113
+ #
114
114
  # graph.add_data( { :data => [3,nil,nil,2] } ) is equivalent to graph.add_data( { :data => [3,0,0,2] } )
115
115
  #
116
116
  def add_data arg
@@ -123,28 +123,28 @@ module SVG
123
123
  end
124
124
 
125
125
  # If true, displays a drop shadow for the chart
126
- attr_accessor :show_shadow
126
+ attr_accessor :show_shadow
127
127
  # Sets the offset of the shadow from the pie chart
128
128
  attr_accessor :shadow_offset
129
129
  # If true, display the data labels on the chart
130
- attr_accessor :show_data_labels
130
+ attr_accessor :show_data_labels
131
131
  # If true, display the actual field values in the data labels
132
- attr_accessor :show_actual_values
132
+ attr_accessor :show_actual_values
133
133
  # If true, display the percentage value of each pie wedge in the data
134
134
  # labels
135
135
  attr_accessor :show_percent
136
136
  # If true, display the labels in the key
137
- attr_accessor :show_key_data_labels
137
+ attr_accessor :show_key_data_labels
138
138
  # If true, display the actual value of the field in the key
139
- attr_accessor :show_key_actual_values
139
+ attr_accessor :show_key_actual_values
140
140
  # If true, display the percentage value of the wedges in the key
141
141
  attr_accessor :show_key_percent
142
142
  # If true, "explode" the pie (put space between the wedges)
143
- attr_accessor :expanded
143
+ attr_accessor :expanded
144
144
  # If true, expand the largest pie wedge
145
- attr_accessor :expand_greatest
145
+ attr_accessor :expand_greatest
146
146
  # The amount of space between expanded wedges
147
- attr_accessor :expand_gap
147
+ attr_accessor :expand_gap
148
148
  # The font size of the data point labels
149
149
  attr_accessor :datapoint_font_size
150
150
 
@@ -219,21 +219,20 @@ module SVG
219
219
  max_value = max_value < x ? x : max_value
220
220
  total += x
221
221
  }
222
- percent_scale = 100.0 / total
223
222
 
224
223
  prev_percent = 0
225
224
  rad_mult = 3.6 * RADIANS
226
225
  @config[:fields].each_index { |count|
227
226
  value = @data[count].to_f
228
- percent = percent_scale * value
227
+ percent = 100.0 * value / total
229
228
  radians = prev_percent * rad_mult
230
229
 
231
- if percent == 100.0
230
+ if percent.rationalize(0.001) == 100.0
232
231
  @foreground.add_element( "circle", {
233
232
  "cx" => radius.to_s,
234
233
  "cy" => radius.to_s,
235
234
  "r" => radius.to_s,
236
- "class" => "fill1"
235
+ "class" => "fill#{count+1}"
237
236
  })
238
237
 
239
238
  if show_shadow
@@ -357,73 +356,73 @@ module SVG
357
356
  fill: #ff0000;
358
357
  fill-opacity: 0.7;
359
358
  stroke: none;
360
- stroke-width: 1px;
359
+ stroke-width: 1px;
361
360
  }
362
361
  .key2,.fill2{
363
362
  fill: #0000ff;
364
363
  fill-opacity: 0.7;
365
364
  stroke: none;
366
- stroke-width: 1px;
365
+ stroke-width: 1px;
367
366
  }
368
367
  .key3,.fill3{
369
368
  fill-opacity: 0.7;
370
369
  fill: #00ff00;
371
370
  stroke: none;
372
- stroke-width: 1px;
371
+ stroke-width: 1px;
373
372
  }
374
373
  .key4,.fill4{
375
374
  fill-opacity: 0.7;
376
375
  fill: #ffcc00;
377
376
  stroke: none;
378
- stroke-width: 1px;
377
+ stroke-width: 1px;
379
378
  }
380
379
  .key5,.fill5{
381
380
  fill-opacity: 0.7;
382
381
  fill: #00ccff;
383
382
  stroke: none;
384
- stroke-width: 1px;
383
+ stroke-width: 1px;
385
384
  }
386
385
  .key6,.fill6{
387
386
  fill-opacity: 0.7;
388
387
  fill: #ff00ff;
389
388
  stroke: none;
390
- stroke-width: 1px;
389
+ stroke-width: 1px;
391
390
  }
392
391
  .key7,.fill7{
393
392
  fill-opacity: 0.7;
394
393
  fill: #00ff99;
395
394
  stroke: none;
396
- stroke-width: 1px;
395
+ stroke-width: 1px;
397
396
  }
398
397
  .key8,.fill8{
399
398
  fill-opacity: 0.7;
400
399
  fill: #ffff00;
401
400
  stroke: none;
402
- stroke-width: 1px;
401
+ stroke-width: 1px;
403
402
  }
404
403
  .key9,.fill9{
405
404
  fill-opacity: 0.7;
406
405
  fill: #cc6666;
407
406
  stroke: none;
408
- stroke-width: 1px;
407
+ stroke-width: 1px;
409
408
  }
410
409
  .key10,.fill10{
411
410
  fill-opacity: 0.7;
412
411
  fill: #663399;
413
412
  stroke: none;
414
- stroke-width: 1px;
413
+ stroke-width: 1px;
415
414
  }
416
415
  .key11,.fill11{
417
416
  fill-opacity: 0.7;
418
417
  fill: #339900;
419
418
  stroke: none;
420
- stroke-width: 1px;
419
+ stroke-width: 1px;
421
420
  }
422
421
  .key12,.fill12{
423
422
  fill-opacity: 0.7;
424
423
  fill: #9966FF;
425
424
  stroke: none;
426
- stroke-width: 1px;
425
+ stroke-width: 1px;
427
426
  }
428
427
  EOL
429
428
  end
@@ -1,6 +1,6 @@
1
1
  module SVG
2
2
  module Graph
3
- VERSION = '2.1.2'
3
+ VERSION = '2.1.3'
4
4
  end
5
5
  end
6
6
  require_relative 'SVG/Graph/DataPoint'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: svg-graph
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Russell
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2017-12-10 00:00:00.000000000 Z
15
+ date: 2017-12-27 00:00:00.000000000 Z
16
16
  dependencies: []
17
17
  description: "Gem version of SVG:::Graph. SVG:::Graph is a pure Ruby library for generating
18
18
  charts, \nwhich are a type of graph where the values of one axis are not scalar.
@@ -72,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
72
  version: '0'
73
73
  requirements: []
74
74
  rubyforge_project:
75
- rubygems_version: 2.6.10
75
+ rubygems_version: 2.6.14
76
76
  signing_key:
77
77
  specification_version: 4
78
78
  summary: SVG:::Graph is a pure Ruby library for generating charts, which are a type