svg-graph 2.1.1 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,20 +4,20 @@ require_relative 'Plot'
4
4
  module SVG
5
5
  module Graph
6
6
  # === For creating SVG plots of scalar temporal data
7
- #
7
+ #
8
8
  # = Synopsis
9
- #
9
+ #
10
10
  # require 'SVG/Graph/TimeSeries'
11
- #
11
+ #
12
12
  # # Data sets are x,y pairs
13
13
  # projection = ["6/17/72", 11, "1/11/72", 7, "4/13/04", 11,
14
14
  # "9/11/01", 9, "9/1/85", 2, "9/1/88", 1, "1/15/95", 13]
15
15
  # actual = ["8/1/73", 18, "3/1/77", 15, "10/1/98", 4,
16
16
  # "5/1/02", 14, "3/1/95", 6, "8/1/91", 12, "12/1/87", 6,
17
17
  # "5/1/84", 17, "10/1/80", 12]
18
- #
18
+ #
19
19
  # title = "Ice Cream Cone Consumption"
20
- #
20
+ #
21
21
  # graph = SVG::Graph::TimeSeries.new( {
22
22
  # :width => 640,
23
23
  # :height => 480,
@@ -39,31 +39,31 @@ module SVG
39
39
  # :stagger_x_labels => true,
40
40
  # :x_label_format => "%m/%d/%y",
41
41
  # })
42
- #
42
+ #
43
43
  # graph.add_data({
44
44
  # :data => projection,
45
45
  # :title => 'Projected',
46
46
  # :template => '%d/%m/%y'
47
47
  # })
48
- #
48
+ #
49
49
  # graph.add_data({
50
50
  # :data => actual,
51
51
  # :title => 'Actual',
52
52
  # :template => '%d/%m/%y'
53
53
  # })
54
- #
54
+ #
55
55
  # print graph.burn()
56
56
  #
57
57
  # = Description
58
- #
58
+ #
59
59
  # Produces a graph of temporal scalar data.
60
- #
60
+ #
61
61
  # = Examples
62
62
  #
63
63
  # http://www.germane-software/repositories/public/SVG/test/timeseries.rb
64
- #
64
+ #
65
65
  # = Notes
66
- #
66
+ #
67
67
  # The default stylesheet handles upto 10 data sets, if you
68
68
  # use more you must create your own stylesheet and add the
69
69
  # additional settings for the extra data sets. You will know
@@ -73,18 +73,18 @@ module SVG
73
73
  # Unlike the other types of charts, data sets must contain x,y pairs:
74
74
  #
75
75
  # [ "12:30", 2 ] # A data set with 1 point: ("12:30",2)
76
- # [ "01:00",2, "14:20",6] # A data set with 2 points: ("01:00",2) and
77
- # # ("14:20",6)
76
+ # [ "01:00",2, "14:20",6] # A data set with 2 points: ("01:00",2) and
77
+ # # ("14:20",6)
78
78
  #
79
- # Note that multiple data sets within the same chart can differ in length,
79
+ # Note that multiple data sets within the same chart can differ in length,
80
80
  # and that the data in the datasets needn't be in order; they will be ordered
81
81
  # by the plot along the X-axis.
82
- #
82
+ #
83
83
  # The dates must be parseable by DateTime#parse or DateTime#strptime, but otherwise can be
84
84
  # any order of magnitude (seconds within the hour, or years)
85
- #
85
+ #
86
86
  # = See also
87
- #
87
+ #
88
88
  # * SVG::Graph::Graph
89
89
  # * SVG::Graph::BarHorizontal
90
90
  # * SVG::Graph::Bar
@@ -117,9 +117,9 @@ module SVG
117
117
  # See Time::strformat, default: '%Y-%m-%d %H:%M:%S'
118
118
  attr_accessor :x_label_format
119
119
  # Use this to set the spacing between dates on the axis. The value
120
- # must be of the form
120
+ # must be of the form
121
121
  # "\d+ ?(days|weeks|months|years|hours|minutes|seconds)?"
122
- #
122
+ #
123
123
  # EG:
124
124
  #
125
125
  # graph.timescale_divisions = "2 weeks"
@@ -133,9 +133,9 @@ module SVG
133
133
  # Add data to the plot.
134
134
  #
135
135
  # d1 = [ "12:30", 2 ] # A data set with 1 point: ("12:30",2)
136
- # d2 = [ "01:00",2, "14:20",6] # A data set with 2 points: ("01:00",2) and
137
- # # ("14:20",6)
138
- # graph.add_data(
136
+ # d2 = [ "01:00",2, "14:20",6] # A data set with 2 points: ("01:00",2) and
137
+ # # ("14:20",6)
138
+ # graph.add_data(
139
139
  # :data => d1,
140
140
  # :title => 'One',
141
141
  # :template => '%H:%M' #template is optional
@@ -182,10 +182,10 @@ module SVG
182
182
  def get_x_labels
183
183
  get_x_values.collect { |v| Time.at(v).strftime( x_label_format ) }
184
184
  end
185
-
185
+
186
186
  private
187
187
 
188
- # Accepts date time as a string, number of seconds since the epoch, or Time
188
+ # Accepts date time as a string, number of seconds since the epoch, or Time
189
189
  # object and returns a Time object. Raises an error if not a valid date time
190
190
  # representation.
191
191
  def parse_time(time, template)
@@ -254,10 +254,10 @@ module SVG
254
254
  return rv
255
255
  end
256
256
  end
257
- min.step( max, @x_scale_division ) {|v| rv << v}
257
+ min.step( max , @x_scale_division ) {|v| rv << v}
258
258
  return rv
259
259
  end # get_x_values
260
-
260
+
261
261
  end # class TimeSeries
262
262
  end # module Graph
263
263
  end # module SVG
@@ -1,11 +1,13 @@
1
1
  module SVG
2
2
  module Graph
3
- VERSION = '2.1.1'
3
+ VERSION = '2.2.1'
4
+
4
5
  end
5
6
  end
7
+ require_relative 'SVG/Graph/C3js'
8
+ require_relative 'SVG/Graph/Graph'
6
9
  require_relative 'SVG/Graph/DataPoint'
7
10
  require_relative 'SVG/Graph/BarBase'
8
- require_relative 'SVG/Graph/Graph'
9
11
  require_relative 'SVG/Graph/Bar'
10
12
  require_relative 'SVG/Graph/BarHorizontal'
11
13
  require_relative 'SVG/Graph/ErrBar'
@@ -12,7 +12,7 @@ class TestSvgGraph < Minitest::Test
12
12
  def test_bar_line_and_pie
13
13
  fields = %w(Jan Feb Mar);
14
14
  data_sales_02 = [12, 45, 21]
15
- [SVG::Graph::Bar, SVG::Graph::BarHorizontal, SVG::Graph::Line, SVG::Graph::Pie].each do
15
+ [SVG::Graph::Bar, SVG::Graph::BarHorizontal, SVG::Graph::Line, SVG::Graph::Pie].each do
16
16
  |klass|
17
17
  graph = klass.new(
18
18
  :height => 500,
@@ -27,14 +27,14 @@ class TestSvgGraph < Minitest::Test
27
27
  assert(out=~/Created with SVG::Graph/)
28
28
  end
29
29
  end # test_bar_line_and_pie
30
-
30
+
31
31
  def test_pie_100_percent
32
32
  fields = %w(Internet TV Newspaper Magazine Radio)
33
33
  #data1 = [2, 3, 1, 3, 1]
34
34
  #data2 = [0, 2, 1, 5, 4]
35
35
  data1 = [0, 3, 0, 0, 0]
36
36
  data2 = [0, 6, 0, 0, 0]
37
-
37
+
38
38
  graph = SVG::Graph::Pie.new(
39
39
  :height => 500,
40
40
  :width => 300,
@@ -50,19 +50,19 @@ class TestSvgGraph < Minitest::Test
50
50
  :data => data1,
51
51
  :title => 'data1'
52
52
  )
53
-
53
+
54
54
  graph.add_data(
55
55
  :data => data2,
56
56
  :title => 'data2'
57
57
  )
58
58
  out = graph.burn
59
- File.open("pie_100.svg", "w") {|fout|
59
+ File.open(File.expand_path("pie_100.svg",__dir__), "w") {|fout|
60
60
  fout.print( out )
61
61
  }
62
- assert_match(/TV 100%/, out, "100% text not found in graph")
62
+ assert_match(/TV 100%/, out, "100% text not found in graph")
63
63
  assert_match(/circle/, out, "no circle was found in graph")
64
64
 
65
65
  end # test_pie_100_percent
66
-
66
+
67
67
  end
68
68
 
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.1
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Russell
@@ -9,17 +9,17 @@ authors:
9
9
  - Liehann Loots
10
10
  - Piergiuliano Bossi
11
11
  - Manuel Widmer
12
- autorequire:
12
+ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2017-09-25 00:00:00.000000000 Z
15
+ date: 2020-12-26 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
- charts, \nwhich are a type of graph where the values of one axis are not scalar.
19
- SVG::Graph has a verry similar API to \nthe Perl library SVG::TT::Graph, and the
20
- resulting charts also look the same. This isn't surprising, \nbecause SVG::Graph
18
+ charts,\nwhich are a type of graph where the values of one axis are not scalar.
19
+ SVG::Graph has a verry similar API to\nthe Perl library SVG::TT::Graph, and the
20
+ resulting charts also look the same. This isn't surprising,\nbecause SVG::Graph
21
21
  started as a loose port of SVG::TT::Graph, although the internal code no longer
22
- resembles \nthe Perl original at all.\n "
22
+ resembles\nthe Perl original at all.\n "
23
23
  email:
24
24
  - ser_AT_germane-software.com
25
25
  - clbustos_AT_gmail.com
@@ -30,18 +30,19 @@ executables: []
30
30
  extensions: []
31
31
  extra_rdoc_files:
32
32
  - LICENSE.txt
33
- - README.markdown
33
+ - README.md
34
34
  - README.txt
35
35
  files:
36
36
  - GPL.txt
37
37
  - History.txt
38
38
  - LICENSE.txt
39
- - README.markdown
39
+ - README.md
40
40
  - README.txt
41
41
  - Rakefile
42
42
  - lib/SVG/Graph/Bar.rb
43
43
  - lib/SVG/Graph/BarBase.rb
44
44
  - lib/SVG/Graph/BarHorizontal.rb
45
+ - lib/SVG/Graph/C3js.rb
45
46
  - lib/SVG/Graph/DataPoint.rb
46
47
  - lib/SVG/Graph/ErrBar.rb
47
48
  - lib/SVG/Graph/Graph.rb
@@ -52,11 +53,11 @@ files:
52
53
  - lib/SVG/Graph/TimeSeries.rb
53
54
  - lib/svggraph.rb
54
55
  - test/test_svg_graph.rb
55
- homepage: http://www.germane-software.com/software/SVG/SVG::Graph/
56
+ homepage: https://github.com/lumean/svg-graph2
56
57
  licenses:
57
58
  - GPL-2.0
58
59
  metadata: {}
59
- post_install_message:
60
+ post_install_message:
60
61
  rdoc_options: []
61
62
  require_paths:
62
63
  - lib
@@ -71,9 +72,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
72
  - !ruby/object:Gem::Version
72
73
  version: '0'
73
74
  requirements: []
74
- rubyforge_project:
75
- rubygems_version: 2.6.12
76
- signing_key:
75
+ rubygems_version: 3.1.4
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
79
79
  of graph where the values of one axis are not scalar.