gnuplot 2.3.6 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog CHANGED
@@ -1,3 +1,6 @@
1
+ 2.4.0
2
+ * Allow for 3D plots, fix examples. Thanks everybody!
3
+
1
4
  2.3.6
2
5
  * Cleanup readme (thanks blambeau again, really, for the snippets)
3
6
 
data/README.textile CHANGED
@@ -1,199 +1,202 @@
1
- h1. Ruby Gnuplot - How To
2
-
3
- p=.
4
- ["ChangeLog":ChangeLog]
5
- ["Authors":AUTHORS.txt]
6
- ["License":LICENSE.txt]
7
-
8
- h2. History and Background
9
-
10
- Gnuplot is a program that has a rich language for the generation of
11
- plots. It has a unique place in academia as it was one of the first
12
- freely available programs for plot generation. I started using gnuplot
13
- over 10 years ago while pursuing my Master's degree in Physics and have
14
- been using it actively ever since. Now rdp maintains it.
15
- See also the changelog for more detail.
16
-
17
- h2. Ruby Gnuplot Concepts
18
-
19
- Gnuplot has a very simple conceptual model. Calls to _Set_ are
20
- made to set parameters and either _Plot_ or _Splot_ is
21
- called to generate the actual plot. The _dataset_ to be
22
- plotted can be specified in a number of ways, contained in a seperate
23
- file, generated from a function, read from standard input, or read
24
- immediately after the plot command.
25
-
26
-
27
- The object model for the Ruby gnuplot wrapper directly mimics this
28
- layout and flow. The following are the standard steps for generating a
29
- plot:
30
-
31
-
32
- p. Instantiate a Plot or Splot object and set parameters by gnuplot variable name.
33
- p. Instantiate DataSet objects and attach Ruby objects containing
34
- the data to be plotted to the DataSet. Attach properties that modify
35
- the plot command using the modifier name.
36
-
37
- p. Send the Plot/Splot object to a Gnuplot instance for
38
- plotting.
39
-
40
- The Version 2.0 interface makes very heavy use of blocks leading to very
41
- readable code.
42
-
43
- Gnuplot.open
44
-
45
-
46
- bq.
47
- Instantiates a new Gnuplot process. The path to the executable is
48
- determined on a Unix or MacOSX system using the which command. Windows
49
- users, I have no idea what to do.
50
- If a block is given to the function the opened process is passed into
51
- the block. This mimics the most common usage of the File.open method.
52
-
53
- Plot.new
54
-
55
-
56
- SPlot.new
57
-
58
- bq.
59
- Create a new Plot or Splot object. DataSets are attached to the object
60
- to specify the data and its properties.
61
- If a block is given to the function, the plot object is passed into the
62
- block.
63
-
64
- DataSet.new
65
-
66
- bq.
67
- Associates a Ruby object containing the data to plot with the properties
68
- that will be passed to the plot command for that dataset. Any Ruby
69
- object can be associated with a DataSet as long as it understands the
70
- to_gplot method.
71
-
72
- to_gplot
73
-
74
- bq.
75
- Within Gnuplot, plot data is read in very simple formats. The
76
- to_gplot method is expected to write the data of the object in a format
77
- that is understandable by Gnuplot. One of the many great things about
78
- Ruby is that methods can be added after the original declaration. The
79
- gnuplot module defines the to_gplot method on the following classes:
80
- Array, String, and Matrix.
81
- Simply define a to_gplot method on your own class to tie the class into
82
- gnuplot.
83
-
84
- h2. Examples
85
-
86
-
87
- h3. Simple sin wave
88
-
89
- bq. The following example simply plots the value of sin(x) between the
90
- ranges of -10 and 10. A few points to notice:
91
-
92
- p. The code uses nested blocks to construct the plot. The newly
93
- created object is passed to the block so it can be modified in
94
- place.
95
-
96
- p. Each of the gnuplot plot variables are modified using the
97
- variable name as a method name on the plot object or on the dataset
98
- object. The wrapper also takes care of the single quoting that is
99
- required on some of the variables like title, ylabel, and xlabel.
100
-
101
-
102
- p. The plot object simply has an array of DataSets. The
103
- constructor initializes this empty array before yielding to the
104
- block. This method uses the << operator to add the DataSet to
105
- the plot.
106
-
107
-
108
- p. When the plot block ends, if an IO object is given to the Plot
109
- constructor, the plot commands will be written to the IO object.
110
- Any object can be passed to the constructor as long as it
111
- understands the << operator.
112
-
113
- <pre>
114
- Gnuplot.open do |gp|
115
- Gnuplot::Plot.new( gp ) do |plot|
116
-
117
- plot.xrange "[-10:10]"
118
- plot.title "Sin Wave Example"
119
- plot.ylabel "x"
120
- plot.xlabel "sin(x)"
121
-
122
- plot.data << Gnuplot::DataSet.new( "sin(x)" ) do |ds|
123
- ds.with = "lines"
124
- ds.linewidth = 4
125
- end
126
-
127
- end
128
-
129
- end
130
- </pre>
131
-
132
- Or you can write it out to a file (the above snippet displays the graph, in Linux, but in windows you'd need to write it to a file).
133
- See the file examples/output_image_file.rb.
134
-
135
- h3. Plotting discrete points
136
-
137
- Array data can be plotted quite easily since Arrays have a defined to_gplot method.
138
-
139
- Simply pass an array of data to the constructor of the DataSet object or set the data property of the DataSet. In this example, because there are two arrays, each array will be a single column of data to the gnuplot process.
140
-
141
- <pre>
142
- Gnuplot.open do |gp|
143
- Gnuplot::Plot.new( gp ) do |plot|
144
-
145
- plot.title "Array Plot Example"
146
- plot.ylabel "x"
147
- plot.xlabel "x^2"
148
-
149
- x = (0..50).collect { |v| v.to_f }
150
- y = x.collect { |v| v ** 2 }
151
-
152
- plot.data << Gnuplot::DataSet.new( [x, y] ) do |ds|
153
- ds.with = "linespoints"
154
- ds.notitle
155
- end
156
- end
157
- end
158
- </pre>
159
-
160
- h3. Multiple Data Sets
161
-
162
- As many data sets as are desired can be attached to a plot. Each of these can have their own plot modifiers. Notice in this example how the data array is explicitly set instead of using the << operator.
163
-
164
- Also in this example, the commands are not written to the Gnuplot process but are instead written to a File called gnuplot.dat. This file can later be run directly by a gnuplot process as it contains only the gnuplot commands.
165
-
166
- <pre>
167
- File.open( "gnuplot.dat", "w") do |gp|
168
- Gnuplot::Plot.new( gp ) do |plot|
169
-
170
- plot.xrange "[-10:10]"
171
- plot.title "Sin Wave Example"
172
- plot.ylabel "x"
173
- plot.xlabel "sin(x)"
174
-
175
- x = (0..50).collect { |v| v.to_f }
176
- y = x.collect { |v| v ** 2 }
177
-
178
- plot.data = [
179
- Gnuplot::DataSet.new( "sin(x)" ) { |ds|
180
- ds.with = "lines"
181
- ds.title = "String function"
182
- ds.linewidth = 4
183
- },
184
-
185
- Gnuplot::DataSet.new( [x, y] ) { |ds|
186
- ds.with = "linespoints"
187
- ds.title = "Array data"
188
- }
189
- ]
190
-
191
- end
192
- end
193
- </pre>
194
-
195
- You can also add arbitrary lines to the output
196
-
197
- <pre>
198
- plot.arbitrary_lines << "set ylabel \"y label" font \"Helvetica,20\""
199
- </pre>
1
+ h1. Ruby Gnuplot - How To
2
+
3
+ p=.
4
+ ["ChangeLog":/ChangeLog]
5
+ ["Authors":AUTHORS.txt]
6
+ ["License":LICENSE.txt]
7
+
8
+ h2. History and Background
9
+
10
+ Gnuplot is a program that has a rich language for the generation of
11
+ plots. It has a unique place in academia as it was one of the first
12
+ freely available programs for plot generation. I started using gnuplot
13
+ over 10 years ago while pursuing my Master's degree in Physics and have
14
+ been using it actively ever since. Now rdp maintains it.
15
+ See also the changelog for more detail.
16
+
17
+ h2. Ruby Gnuplot Concepts
18
+
19
+ Gnuplot has a very simple conceptual model. Calls to _Set_ are
20
+ made to set parameters and either _Plot_ or _Splot_ is
21
+ called to generate the actual plot. The _dataset_ to be
22
+ plotted can be specified in a number of ways, contained in a seperate
23
+ file, generated from a function, read from standard input, or read
24
+ immediately after the plot command.
25
+
26
+
27
+ The object model for the Ruby gnuplot wrapper directly mimics this
28
+ layout and flow. The following are the standard steps for generating a
29
+ plot:
30
+
31
+
32
+ p. Instantiate a Plot or Splot object and set parameters by gnuplot variable name.
33
+ p. Instantiate DataSet objects and attach Ruby objects containing
34
+ the data to be plotted to the DataSet. Attach properties that modify
35
+ the plot command using the modifier name.
36
+
37
+ p. Send the Plot/Splot object to a Gnuplot instance for
38
+ plotting.
39
+
40
+ The Version 2.0 interface makes very heavy use of blocks leading to very
41
+ readable code.
42
+
43
+ Gnuplot.open
44
+
45
+
46
+ bq.
47
+ Instantiates a new Gnuplot process. The path to the executable is
48
+ determined on a Unix or MacOSX system using the which command. Windows
49
+ users, I have no idea what to do.
50
+ If a block is given to the function the opened process is passed into
51
+ the block. This mimics the most common usage of the File.open method.
52
+
53
+ Plot.new
54
+
55
+
56
+ SPlot.new
57
+
58
+ bq.
59
+ Create a new Plot or Splot object. DataSets are attached to the object
60
+ to specify the data and its properties.
61
+ If a block is given to the function, the plot object is passed into the
62
+ block.
63
+
64
+ DataSet.new
65
+
66
+ bq.
67
+ Associates a Ruby object containing the data to plot with the properties
68
+ that will be passed to the plot command for that dataset. Any Ruby
69
+ object can be associated with a DataSet as long as it understands the
70
+ to_gplot method.
71
+
72
+ to_gplot
73
+
74
+ bq.
75
+ Within Gnuplot, plot data is read in very simple formats. The
76
+ to_gplot method is expected to write the data of the object in a format
77
+ that is understandable by Gnuplot. One of the many great things about
78
+ Ruby is that methods can be added after the original declaration. The
79
+ gnuplot module defines the to_gplot method on the following classes:
80
+ Array, String, and Matrix.
81
+ Simply define a to_gplot method on your own class to tie the class into
82
+ gnuplot.
83
+
84
+ h2. Examples
85
+
86
+
87
+ h3. Simple sin wave
88
+
89
+ bq. The following example simply plots the value of sin(x) between the
90
+ ranges of -10 and 10. A few points to notice:
91
+
92
+ p. The code uses nested blocks to construct the plot. The newly
93
+ created object is passed to the block so it can be modified in
94
+ place.
95
+
96
+ p. Each of the gnuplot plot variables are modified using the
97
+ variable name as a method name on the plot object or on the dataset
98
+ object. The wrapper also takes care of the single quoting that is
99
+ required on some of the variables like title, ylabel, and xlabel.
100
+
101
+
102
+ p. The plot object simply has an array of DataSets. The
103
+ constructor initializes this empty array before yielding to the
104
+ block. This method uses the << operator to add the DataSet to
105
+ the plot.
106
+
107
+
108
+ p. When the plot block ends, if an IO object is given to the Plot
109
+ constructor, the plot commands will be written to the IO object.
110
+ Any object can be passed to the constructor as long as it
111
+ understands the << operator.
112
+
113
+ <pre>
114
+ Gnuplot.open do |gp|
115
+ Gnuplot::Plot.new( gp ) do |plot|
116
+
117
+ plot.xrange "[-10:10]"
118
+ plot.title "Sin Wave Example"
119
+ plot.ylabel "x"
120
+ plot.xlabel "sin(x)"
121
+
122
+ plot.data << Gnuplot::DataSet.new( "sin(x)" ) do |ds|
123
+ ds.with = "lines"
124
+ ds.linewidth = 4
125
+ end
126
+
127
+ end
128
+
129
+ end
130
+ </pre>
131
+
132
+ Or you can write it out to a file (the above snippet displays the graph, in Linux, but in windows you'd need to write it to a file).
133
+ See the file examples/output_image_file.rb.
134
+
135
+ h3. Plotting discrete points
136
+
137
+ Array data can be plotted quite easily since Arrays have a defined to_gplot method.
138
+
139
+ Simply pass an array of data to the constructor of the DataSet object or set the data property of the DataSet. In this example, because there are two arrays, each array will be a single column of data to the gnuplot process.
140
+
141
+ <pre>
142
+ Gnuplot.open do |gp|
143
+ Gnuplot::Plot.new( gp ) do |plot|
144
+
145
+ plot.title "Array Plot Example"
146
+ plot.ylabel "x"
147
+ plot.xlabel "x^2"
148
+
149
+ x = (0..50).collect { |v| v.to_f }
150
+ y = x.collect { |v| v ** 2 }
151
+
152
+ plot.data << Gnuplot::DataSet.new( [x, y] ) do |ds|
153
+ ds.with = "linespoints"
154
+ ds.notitle
155
+ end
156
+ end
157
+ end
158
+ </pre>
159
+
160
+ h3. Multiple Data Sets
161
+
162
+ As many data sets as are desired can be attached to a plot. Each of these can have their own plot modifiers. Notice in this example how the data array is explicitly set instead of using the << operator.
163
+
164
+ Also in this example, the commands are not written to the Gnuplot process but are instead written to a File called gnuplot.dat. This file can later be run directly by a gnuplot process as it contains only the gnuplot commands.
165
+
166
+ <pre>
167
+ File.open( "gnuplot.dat", "w") do |gp|
168
+ Gnuplot::Plot.new( gp ) do |plot|
169
+
170
+ plot.xrange "[-10:10]"
171
+ plot.title "Sin Wave Example"
172
+ plot.ylabel "x"
173
+ plot.xlabel "sin(x)"
174
+
175
+ x = (0..50).collect { |v| v.to_f }
176
+ y = x.collect { |v| v ** 2 }
177
+
178
+ plot.data = [
179
+ Gnuplot::DataSet.new( "sin(x)" ) { |ds|
180
+ ds.with = "lines"
181
+ ds.title = "String function"
182
+ ds.linewidth = 4
183
+ },
184
+
185
+ Gnuplot::DataSet.new( [x, y] ) { |ds|
186
+ ds.with = "linespoints"
187
+ ds.title = "Array data"
188
+ }
189
+ ]
190
+
191
+ end
192
+ end
193
+ </pre>
194
+
195
+ You can also add arbitrary lines to the output
196
+
197
+ <pre>
198
+ plot.arbitrary_lines << "set ylabel \"y label" font \"Helvetica,20\""
199
+ </pre>
200
+
201
+ See more in the examples folder. Also since this is basically just a wrapper for gnuplot itself, you should be able to do anything that it can do (demos:
202
+ http://gnuplot.sourceforge.net/demo_4.4/ )
data/Rakefile CHANGED
@@ -1,13 +1,9 @@
1
- begin
2
- require 'psych' # boo
3
- rescue ::LoadError
4
- end
5
-
6
1
  require 'jeweler'
7
2
  Jeweler::Tasks.new do |s|
8
3
  s.name = 'gnuplot'
9
- s.description = s.summary = "Utility library to aid in interacting with gnuplot"
10
- s.version = "2.3.6"
4
+ s.description = s.summary = "Utility library to aid in interacting with gnuplot from ruby"
5
+ s.version = "2.4.0"
6
+ s.authors='roger pack'
11
7
  s.autorequire = 'gnuplot.rb'
12
8
  s.email = "rogerpack2005@gmail.com"
13
9
  s.homepage = "http://github.com/rdp/ruby_gnuplot/tree/master"
@@ -0,0 +1,14 @@
1
+ require "gnuplot"
2
+
3
+ Gnuplot.open do |gp|
4
+ Gnuplot::SPlot.new( gp ) do |plot|
5
+ plot.grid
6
+
7
+ plot.data = [
8
+ Gnuplot::DataSet.new( "x**2+y**2" ) do |ds|
9
+ ds.with = "pm3d"
10
+ end
11
+ ]
12
+ end
13
+ sleep 10
14
+ end
@@ -4,8 +4,8 @@ Gnuplot.open do |gp|
4
4
  Gnuplot::Plot.new( gp ) do |plot|
5
5
 
6
6
  plot.title "Array Plot Example"
7
- plot.ylabel "x"
8
- plot.xlabel "x^2"
7
+ plot.ylabel "x^2"
8
+ plot.xlabel "x"
9
9
 
10
10
  x = (0..50).collect { |v| v.to_f }
11
11
  y = x.collect { |v| v ** 2 }
@@ -14,6 +14,5 @@ Gnuplot.open do |gp|
14
14
  ds.with = "linespoints"
15
15
  ds.notitle
16
16
  end
17
-
18
17
  end
19
18
  end
@@ -0,0 +1,32 @@
1
+ $LOAD_PATH.unshift(File.expand_path('../../lib', __FILE__))
2
+ require "gnuplot"
3
+ Gnuplot.open do |gp|
4
+ Gnuplot::Plot.new(gp) do |plot|
5
+
6
+ plot.title "Histogram example"
7
+ plot.style "data histograms"
8
+ plot.xtics "nomirror rotate by -45"
9
+
10
+ titles = %w{decade Austria Hungary Belgium}
11
+ data = [
12
+ ["1891-1900", 234081, 181288, 18167],
13
+ ["1901-1910", 668209, 808511, 41635],
14
+ ["1911-1920", 453649, 442693, 33746],
15
+ ["1921-1930", 32868, 30680, 15846],
16
+ ["1931-1940", 3563, 7861, 4817],
17
+ ["1941-1950", 24860, 3469, 12189],
18
+ ["1951-1960", 67106, 36637, 18575],
19
+ ["1961-1970", 20621, 5401, 9192],
20
+ ]
21
+
22
+ x = data.collect{|arr| arr.first}
23
+ (1..3).each do |col|
24
+ y = data.collect{|arr| arr[col]}
25
+ plot.data << Gnuplot::DataSet.new( [x, y] ) do |ds|
26
+ ds.using = "2:xtic(1)"
27
+ ds.title = titles[col]
28
+ end
29
+ end
30
+
31
+ end
32
+ end
@@ -5,8 +5,8 @@ Gnuplot.open do |gp|
5
5
 
6
6
  plot.xrange "[-10:10]"
7
7
  plot.title "Sin Wave Example"
8
- plot.ylabel "x"
9
- plot.xlabel "sin(x)"
8
+ plot.ylabel "sin(x)"
9
+ plot.xlabel "x"
10
10
 
11
11
  x = (0..50).collect { |v| v.to_f }
12
12
  y = x.collect { |v| v ** 2 }
@@ -15,13 +15,13 @@ Gnuplot.open do |gp|
15
15
  # for a list of recognized terminals.
16
16
  #
17
17
  plot.terminal "gif"
18
- plot.output File.expand_path("../sin_wave.gif", __FILE__)
18
+ plot.output File.expand_path("../sin_wave.gif", __FILE__)
19
19
 
20
20
  # see sin_wave.rb
21
21
  plot.xrange "[-10:10]"
22
22
  plot.title "Sin Wave Example"
23
- plot.ylabel "x"
24
- plot.xlabel "sin(x)"
23
+ plot.ylabel "sin(x)"
24
+ plot.xlabel "x"
25
25
 
26
26
  plot.data << Gnuplot::DataSet.new( "sin(x)" ) do |ds|
27
27
  ds.with = "lines"
@@ -30,3 +30,4 @@ Gnuplot.open do |gp|
30
30
 
31
31
  end
32
32
  end
33
+ puts 'created sin_wave.gif'
data/examples/sin_wave.rb CHANGED
@@ -5,8 +5,8 @@ Gnuplot.open do |gp|
5
5
 
6
6
  plot.xrange "[-10:10]"
7
7
  plot.title "Sin Wave Example"
8
- plot.ylabel "x"
9
- plot.xlabel "sin(x)"
8
+ plot.ylabel "sin(x)"
9
+ plot.xlabel "x"
10
10
 
11
11
  plot.data << Gnuplot::DataSet.new( "sin(x)" ) do |ds|
12
12
  ds.with = "lines"
@@ -14,4 +14,5 @@ Gnuplot.open do |gp|
14
14
  end
15
15
 
16
16
  end
17
+ sleep 10
17
18
  end
data/lib/gnuplot.rb CHANGED
@@ -55,7 +55,7 @@ module Gnuplot
55
55
  #
56
56
  # Return the path to the gnuplot executable or nil if one cannot be found.
57
57
  def Gnuplot.gnuplot( persist = true )
58
- cmd = which( ENV['RB_GNUPLOT'] || 'gnuplot' )
58
+ cmd = '"' + which( ENV['RB_GNUPLOT'] || 'gnuplot' ) + '"'
59
59
  raise 'gnuplot executable not found' unless cmd
60
60
  cmd += " -persist" if persist
61
61
  cmd
@@ -91,8 +91,12 @@ module Gnuplot
91
91
  @arbitrary_lines = []
92
92
  @data = []
93
93
  yield self if block_given?
94
- puts "writing this to gnuplot:\n" + to_gplot + "\n" if $VERBOSE
95
- io << to_gplot if io
94
+ puts "writing this to gnuplot:\n" + to_gplot + "\n" if $VERBOSE
95
+
96
+ if io
97
+ io << to_gplot
98
+ io << store_datasets
99
+ end
96
100
  end
97
101
  attr_accessor :arbitrary_lines
98
102
 
@@ -137,14 +141,18 @@ module Gnuplot
137
141
  @sets.each { |var, val| io << "set #{var} #{val}\n" }
138
142
  @arbitrary_lines.each{|line| io << line << "\n" }
139
143
 
140
- if @data.size > 0 then
144
+ io
145
+ end
146
+
147
+ def store_datasets (io = "")
148
+ if @data.size > 0
141
149
  io << @cmd << " " << @data.collect { |e| e.plot_args }.join(", ")
142
150
  io << "\n"
143
151
 
144
152
  v = @data.collect { |ds| ds.to_gplot }
145
153
  io << v.compact.join("e\n")
146
154
  end
147
-
155
+
148
156
  io
149
157
  end
150
158
  end
@@ -158,16 +166,6 @@ module Gnuplot
158
166
  def to_gplot (io = "")
159
167
  @sets.each { |var, val| io << "set #{var} #{val}\n" }
160
168
 
161
- if @data.size > 0 then
162
- io << @cmd << " "
163
- io << @data.collect { |e| e.plot_args }.join(", ")
164
- io << "\n"
165
-
166
- @data.each do |ds|
167
- io << ds.to_gsplot << "e\n"
168
- end
169
- end
170
-
171
169
  io
172
170
  end
173
171
 
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gnuplot
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.6
5
- prerelease:
4
+ prerelease:
5
+ version: 2.4.0
6
6
  platform: ruby
7
- authors: []
7
+ authors:
8
+ - roger pack
8
9
  autorequire: gnuplot.rb
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2011-03-03 00:00:00.000000000 -07:00
12
- default_executable:
12
+ date: 2012-03-20 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: Utility library to aid in interacting with gnuplot
14
+ description: Utility library to aid in interacting with gnuplot from ruby
15
15
  email: rogerpack2005@gmail.com
16
16
  executables: []
17
17
  extensions: []
@@ -26,7 +26,9 @@ files:
26
26
  - README.textile
27
27
  - Rakefile
28
28
  - examples/.gitignore
29
+ - examples/3d_surface_plot.rb
29
30
  - examples/discrete_points.rb
31
+ - examples/histogram.rb
30
32
  - examples/multiple_data_sets.rb
31
33
  - examples/output_image_file.rb
32
34
  - examples/sin_wave.rb
@@ -36,38 +38,31 @@ files:
36
38
  - test/multtest.rb
37
39
  - test/sinwave.rb
38
40
  - test/test_gnuplot.rb
39
- has_rdoc: true
40
41
  homepage: http://github.com/rdp/ruby_gnuplot/tree/master
41
42
  licenses: []
42
- post_install_message:
43
+ post_install_message:
43
44
  rdoc_options: []
44
45
  require_paths:
45
46
  - lib
46
47
  required_ruby_version: !ruby/object:Gem::Requirement
47
- none: false
48
48
  requirements:
49
49
  - - ! '>='
50
50
  - !ruby/object:Gem::Version
51
- version: '0'
52
- required_rubygems_version: !ruby/object:Gem::Requirement
51
+ version: !binary |-
52
+ MA==
53
53
  none: false
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
55
  requirements:
55
56
  - - ! '>='
56
57
  - !ruby/object:Gem::Version
57
- version: '0'
58
+ version: !binary |-
59
+ MA==
60
+ none: false
58
61
  requirements: []
59
- rubyforge_project:
60
- rubygems_version: 1.6.0
61
- signing_key:
62
+ rubyforge_project:
63
+ rubygems_version: 1.8.19
64
+ signing_key:
62
65
  specification_version: 3
63
- summary: Utility library to aid in interacting with gnuplot
64
- test_files:
65
- - examples/discrete_points.rb
66
- - examples/multiple_data_sets.rb
67
- - examples/output_image_file.rb
68
- - examples/sin_wave.rb
69
- - test/arrtest.rb
70
- - test/histtest.rb
71
- - test/multtest.rb
72
- - test/sinwave.rb
73
- - test/test_gnuplot.rb
66
+ summary: Utility library to aid in interacting with gnuplot from ruby
67
+ test_files: []
68
+ ...