unifiedPlot 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/gemspec +1 -1
  3. data/lib/unifiedPlot.rb +71 -34
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1e9d7f49741bbd243b7474f5995ae126c9f8e6d5
4
- data.tar.gz: 47ba0e9b81999bcd464628907ca6e612ebae06a7
3
+ metadata.gz: 304311035a530de07e6cafc0ec9ceadacb004fe9
4
+ data.tar.gz: ec01987014080b3bcb05ad1e0256c5f503975c21
5
5
  SHA512:
6
- metadata.gz: 67d63b5d812c4a427bd1ee7a5533904662630a7e905892c9d7a716c11473d34519a868e07e4e9a62aaf83dfb95162e58fc3525108e9476f19009f098d601f1b2
7
- data.tar.gz: 172539447d007e9ebb700d4a6a5d139d85ce4c4e6b30114ee93cee05c4a9fadc0d7ee11f593738b758d96fc1f598ced5692ce25e033a6f9f839f2b180df3f09a
6
+ metadata.gz: 0bdbb5432b3d625b72aee36a41043aa3840e6890a38bdd0c772f9e373a6f556f4307d216086c6d5dd5523fa280e1b174ee09c8b2029b41bd4da6bbd10ef57a4c
7
+ data.tar.gz: cb08346500cfbddf704a9bb79889833c0c8d4317d4b09991d57a74a8002f25606195094350a1817c7ade4ef3a0cb0ad33bb3437f45c3e8dbd9cddc6a66375e67
data/gemspec CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
 
3
3
  GEM_SPEC = Gem::Specification.new do |s|
4
4
  s.name = "unifiedPlot"
5
- s.version = '0.0.3'
5
+ s.version = '0.0.4'
6
6
  s.date = Time.new.strftime("%Y-%m-%d")
7
7
 
8
8
  s.description = 'single interface to line-plotting data in [],NArray and GSL::Vector format'
data/lib/unifiedPlot.rb CHANGED
@@ -10,7 +10,7 @@ module UnifiedPlot
10
10
  :y2label => nil,
11
11
  :xlabel => nil,
12
12
  :x2label => nil,
13
- :label_position => 'bottom out',
13
+ :key => 'bottom out',
14
14
  :xsize => 1200,
15
15
  :ysize => 800,
16
16
  :font => 'arial',
@@ -35,36 +35,25 @@ module UnifiedPlot
35
35
  # :title => '',
36
36
  # :grid => false,
37
37
  # }
38
- def UnifiedPlot.setPlotDefaults(plot,plotConf,title,oType,oName)
39
- plotConf = PLOT_DEFAULTS.merge(plotConf)
40
- unless 'x11' == oType
41
- plot.terminal "#{oType} size #{plotConf[:xsize]},#{plotConf[:ysize]} font #{plotConf[:font]} #{plotConf[:fontsize]}"
42
- plot.output "#{oName}.#{oType}"
43
- end
44
- plot.title title
45
- plot.key plotConf[:label_position]
46
-
47
- plot.xrange plotConf[:xrange] unless plotConf[:xrange].nil?
48
- plot.x2range plotConf[:x2range] unless plotConf[:x2range].nil?
49
- plot.yrange plotConf[:yrange] unless plotConf[:yrange].nil?
50
- plot.y2range plotConf[:y2range] unless plotConf[:y2range].nil?
51
-
52
- plot.xtics
53
- plot.ytics
54
-
55
- plot.xlabel plotConf[:xlabel]
56
- plot.x2label plotConf[:x2label]
57
- plot.ylabel plotConf[:ylabel]
58
- plot.y2label plotConf[:y2label]
59
- end
60
-
61
38
  def UnifiedPlot.linePlot(inputs, plotConf: PLOT_DEFAULTS, title: '', oType: 'x11',oName: 'test')
62
39
  # allow hash input
63
40
  inputs = [inputs] if inputs.kind_of? Hash
64
41
 
42
+ plotConf = PLOT_DEFAULTS.merge(plotConf) unless plotConf == PLOT_DEFAULTS
43
+
65
44
  Gnuplot.open do |gp|
66
45
  Gnuplot::Plot.new( gp ) do |plot|
67
- setPlotDefaults(plot,plotConf,title,oType,oName)
46
+ unless 'x11' == oType
47
+ plot.terminal "#{oType} size #{plotConf[:xsize]},#{plotConf[:ysize]} font #{plotConf[:font]} #{plotConf[:fontsize]}"
48
+ plot.output "#{oName}.#{oType}"
49
+ end
50
+
51
+ plot.title title
52
+
53
+ UnifiedPlot.applyConf(plot,plotConf)
54
+
55
+ plot.xtics
56
+ plot.ytics
68
57
 
69
58
  inputs.each {|data|
70
59
  data = DATA_DEFAULTS.merge(data)
@@ -80,20 +69,26 @@ module UnifiedPlot
80
69
  plot.grid
81
70
  end
82
71
  end
72
+ return ('x11' != oType) ? [oName,oType].join('.') : nil
83
73
  end
84
74
  def UnifiedPlot.pm3d(inputs,plotConf: PLOT_DEFAULTS,title: '',oType: 'x11',oName: 'test')
85
- # allow hash input
86
- inputs = [inputs] if inputs.kind_of? Hash
87
-
88
- # tempfile for holding the data (ugly, but works)
89
- filename = `tempfile`.chomp
90
75
  Gnuplot.open do |gp|
91
76
  Gnuplot::SPlot.new( gp ) do |plot|
92
- setPlotDefaults(plot,plotConf,title,oType,oName)
77
+ unless 'x11' == oType
78
+ plot.terminal oType
79
+ plot.output "#{oName}.#{oType}"
80
+ end
81
+
82
+ plotConf = PLOT_DEFAULTS.merge(plotConf)
83
+ plot.title title
84
+
85
+ UnifiedPlot.applyConf(plot,plotConf)
93
86
 
87
+ plot.xtics
88
+ plot.ytics
94
89
 
95
- plot.nokey
96
90
  # write stuff to a file
91
+ filename = `tempfile`.chomp
97
92
  File.open(filename,'w') {|f|
98
93
  inputs.each {|data|
99
94
  f << data.join(' ')
@@ -103,12 +98,42 @@ module UnifiedPlot
103
98
 
104
99
  plot.view "map"
105
100
  plot.data << Gnuplot::DataSet.new("'"+filename+"'") do |ds|
106
- ds.with = "image"
101
+ ds.with = "image"
107
102
  ds.matrix = true
108
103
  end
109
104
  end
110
105
  end
111
- FileUtils.rm(filename)
106
+ return ('x11' != oType) ? [oName,oType].join('.') : nil
107
+ end
108
+ def UnifiedPlot.heatMap(inputs,plotConf: PLOT_DEFAULTS,title: '',oType: 'x11',oName: 'test')
109
+ plotConf = PLOT_DEFAULTS.merge(plotConf)
110
+ Gnuplot.open do |gp|
111
+ Gnuplot::Plot.new( gp ) do |plot|
112
+ unless 'x11' == oType
113
+ plot.terminal oType
114
+ plot.output "#{oName}.#{oType}"
115
+ end
116
+
117
+ plot.title title
118
+
119
+ UnifiedPlot.applyConf(plot,plotConf)
120
+
121
+ plot.xtics
122
+ plot.ytics
123
+
124
+ inputs.each {|data|
125
+ data = DATA_DEFAULTS.merge(data)
126
+ dataset = [data[:x].to_a,data[:y].to_a,data[:z].to_a]
127
+ plot.data << Gnuplot::DataSet.new( dataset ) do |ds|
128
+ ds.with = 'image'
129
+ ds.axes = data[:axes]
130
+ ds.title = data[:title]
131
+ end
132
+ }
133
+ plot.grid
134
+ end
135
+ end
136
+ return ('x11' != oType) ? [oName,oType].join('.') : nil
112
137
  end
113
138
  def UnifiedPlot.fieldPlot(inputs)
114
139
  RubyPython.start
@@ -116,4 +141,16 @@ module UnifiedPlot
116
141
  pl.imshow(inputs.to_a.reverse)
117
142
  pl.show()
118
143
  end
144
+ private
145
+ def UnifiedPlot.applyConf(plot,config)
146
+ config.each {|k,v|
147
+ # avoid image settings
148
+ next if [:font,:fontsize,:xsize,:ysize,:label_position].include?(k)
149
+ unless [true,false].include?(v) then
150
+ plot.send(k,v)
151
+ else
152
+ plot.send(k)
153
+ end
154
+ }
155
+ end
119
156
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unifiedPlot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ralf Mueller
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-05 00:00:00.000000000 Z
11
+ date: 2014-06-19 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: single interface to line-plotting data in [],NArray and GSL::Vector format
14
14
  email: stark.dreamdetective@gmail.com
@@ -38,7 +38,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
38
38
  version: '0'
39
39
  requirements: []
40
40
  rubyforge_project:
41
- rubygems_version: 2.2.0
41
+ rubygems_version: 2.2.2
42
42
  signing_key:
43
43
  specification_version: 4
44
44
  summary: simple line plot for array-based inputs