ruby-mext 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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