ruby-mext 0.3.0 → 0.3.1

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
  SHA256:
3
- metadata.gz: e17fe59684741fe17bcb1115faf090621239cdc7afb3823a3601ae7b8e643449
4
- data.tar.gz: 670b6028c1a79e8feaac202c9ddb3da4f07f5d72e93a3a5d862e3a9f9ce58e7a
3
+ metadata.gz: '03508612b0d517d9d7e3928a1cee1cfecbeb65a3482351e7c40446de27b1b9de'
4
+ data.tar.gz: 96439ab70941ef071c43540cb5502421d06f12314d71c51ea5671c0f39ba5b70
5
5
  SHA512:
6
- metadata.gz: a09e8d92256aadcd2bbfe12fa3ec7caffb4c33c2213f7e1e5843a810cef484c580b39db9c064f0da2a83c562c63e0b51d06e1a391343903777f5bc23192baa6e
7
- data.tar.gz: 7e5414a0aa5f5790286825e2acf7c800e3a43b8d315b29df1a35bb8f7d97c8587909dba9d62f256d8431ad63935aa9313c14d488f9ac66bb6581521481245c9e
6
+ metadata.gz: c0d5720ecb32f75b9c64437695596f063691a6bf17c459e7fc1ee8b1cc2943a0cac6b74ef4663a02c47aa71a740ab3f85e6eeefd326139e2409154681fdffe29
7
+ data.tar.gz: 6468d791f4d178b41214599b13542a7ee94cd0141f83db12d581f9bc727b522fe2b3c6d54db63366df8728e700fc70882b85fea40024a51cf7f879f618a890e7
@@ -47,6 +47,10 @@ module Math
47
47
  (CMath::exp(self.a*x + self.b) + self.c).abs # we want a real number result, no complex please
48
48
  end
49
49
 
50
+ def label
51
+ "tau: #{self.tau}"
52
+ end
53
+
50
54
  private
51
55
 
52
56
  def setup
@@ -45,6 +45,16 @@ module Math
45
45
  [resx, resy]
46
46
  end
47
47
 
48
+ #:doc:
49
+ #
50
+ # +label+
51
+ #
52
+ # Returns a label which can be used in plots
53
+ #
54
+ def label
55
+ ''
56
+ end
57
+
48
58
  private
49
59
 
50
60
  def setup
@@ -38,6 +38,10 @@ module Math
38
38
  (self.a*x) + self.b
39
39
  end
40
40
 
41
+ def label
42
+ "a: #{self.a}\nb: #{self.b}"
43
+ end
44
+
41
45
  private
42
46
 
43
47
  def setup
@@ -4,17 +4,15 @@ require File.expand_path(File.join('..', 'gruff_plot'), __FILE__)
4
4
 
5
5
  namespace :plot do
6
6
 
7
- task :create_output_dir do
8
- unless Dir.exists?(Mext::Gruff::Plotter::OUTPUT_PATH)
9
- mkdir_p Mext::Gruff::Plotter::OUTPUT_PATH
10
- end
11
- end
12
-
13
7
  desc 'plot the Expon dataset'
14
8
  task :expon => :create_output_dir do
15
9
  ranges = [ Range.new(0, 2), Range.new(3,3) ]
16
10
  p = Mext::Gruff::Plotter.new('expon_dataset', 800, Mext::Spec::Fixtures::Math::EXPON_DATASETS, ranges)
17
- p.plot
11
+ p.plot do
12
+ |args|
13
+ (ys, ye, xs, xe, tau, xmid, ymid) = args
14
+ Math::Expon.new(ys, ye, xs, xe, tau)
15
+ end
18
16
  end
19
17
 
20
18
  end
@@ -1,3 +1,13 @@
1
1
 
2
2
  desc 'plot all plots'
3
- task :plot => ['plot:expon']
3
+ task :plot => ['plot:expon', 'plot:line']
4
+
5
+ namespace :plot do
6
+
7
+ task :create_output_dir do
8
+ unless Dir.exists?(Mext::Gruff::Plotter::OUTPUT_PATH)
9
+ mkdir_p Mext::Gruff::Plotter::OUTPUT_PATH
10
+ end
11
+ end
12
+
13
+ end
@@ -1,18 +1,24 @@
1
1
  require 'gruff'
2
+ require 'byebug'
2
3
 
3
4
  module Mext
4
5
  module Gruff
5
6
 
6
7
  class Plotter
7
8
  attr_reader :title, :size, :datasets, :ranges
9
+ attr_accessor :step, :dot_radius
8
10
 
9
11
  OUTPUT_PATH = File.expand_path(File.join(['..'] * 4, 'tmp', 'output'), __FILE__)
12
+ DEFAULT_STEP = 0.1
13
+ DEFAULT_DOT_RADIUS = 2.0
10
14
 
11
- def initialize(t, s, ds, r = nil)
15
+ def initialize(t, s, ds, r = nil, stp = DEFAULT_STEP)
12
16
  @title = t
13
17
  @size = s
14
18
  @datasets = ds
15
19
  @ranges = r
20
+ self.step = stp
21
+ self.dot_radius = DEFAULT_DOT_RADIUS
16
22
  end
17
23
 
18
24
  def plot
@@ -22,12 +28,13 @@ module Mext
22
28
  |range|
23
29
  g = ::Gruff::Line.new(self.size)
24
30
  g.title = self.title + " (#{idx})"
31
+ g.theme = ::Gruff::Themes::PASTEL
32
+ g.dot_radius = self.dot_radius
25
33
  self.datasets[range].each do
26
34
  |args|
27
- (ys, ye, xs, xe, tau, xmid, ymid) = args
28
- f = Math::Expon.new(ys, ye, xs, xe, tau)
29
- (xdata, ydata) = f.xy(0.1)
30
- g.dataxy("tau: #{f.tau}", xdata, ydata)
35
+ f = yield(args)
36
+ (xdata, ydata) = f.xy(self.step)
37
+ g.dataxy(f.label, xdata, ydata)
31
38
  end
32
39
  g.write(File.join(Mext::Gruff::Plotter::OUTPUT_PATH, self.title.gsub(/\s+/, '_') + "_#{idx}.png"))
33
40
  idx += 1
@@ -35,5 +42,6 @@ module Mext
35
42
  end
36
43
 
37
44
  end
45
+
38
46
  end
39
47
  end
@@ -0,0 +1,18 @@
1
+ require 'fileutils'
2
+ require File.expand_path(File.join(['..'] * 4, 'spec', 'fixtures', 'line_dataset'), __FILE__)
3
+ require File.expand_path(File.join('..', 'gruff_plot'), __FILE__)
4
+
5
+ namespace :plot do
6
+
7
+ desc 'plot the Line dataset'
8
+ task :line => :create_output_dir do
9
+ ranges = [ Range.new(0, 0), Range.new(1,1) ]
10
+ p = Mext::Gruff::Plotter.new('line_dataset', 800, Mext::Spec::Fixtures::Math::LINE_DATASETS, ranges)
11
+ p.plot do
12
+ |args|
13
+ (ys, ye, xs, xe, xmid, ymid) = args
14
+ Math::Line.new(ys, ye, xs, xe)
15
+ end
16
+ end
17
+
18
+ end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mext
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-mext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicola Bernardini
@@ -137,6 +137,7 @@ files:
137
137
  - lib/tasks/gruff/expon.rake
138
138
  - lib/tasks/gruff/gruff.rake
139
139
  - lib/tasks/gruff/gruff_plot.rb
140
+ - lib/tasks/gruff/line.rake
140
141
  - lib/version.rb
141
142
  - ruby-mext.gemspec
142
143
  homepage: https://github.com/nicb/ruby-mext