numo-gnuplot 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/numo/gnuplot.rb +51 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d5e544ba0f4909259490066ff280df9562cbc44
|
4
|
+
data.tar.gz: e640abea3b8753a94265fe4c9a1c9bce8eb6b0f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d16164e9871ee7a6b5f8749ed8b06ce83e07992a5ab450dd30350f0b2ca9d4b245ef6c843bdd5eb5582c73f9113cbfd752530e55f7eac025646535b0aaa09a9
|
7
|
+
data.tar.gz: d0bc21a42e7187fb5c1ba79a9cb1f3f1d7dbe8bfba42d4b4d8d26ffba5e503146de3179555778439a64eba34c155090db27ed4622a88e4d833fe907fa5b08e8b
|
data/lib/numo/gnuplot.rb
CHANGED
@@ -11,7 +11,7 @@ module Numo
|
|
11
11
|
|
12
12
|
class Gnuplot
|
13
13
|
|
14
|
-
VERSION = "0.1.
|
14
|
+
VERSION = "0.1.4"
|
15
15
|
POOL = []
|
16
16
|
DATA_FORMAT = "%.5g"
|
17
17
|
|
@@ -120,7 +120,7 @@ class Gnuplot
|
|
120
120
|
# text display option is disabled.
|
121
121
|
# pause 10
|
122
122
|
# pause 'mouse'
|
123
|
-
# pause mouse:%w[keypress
|
123
|
+
# pause mouse:%w[keypress button1 button2 button3 close any]
|
124
124
|
def pause(*args)
|
125
125
|
send_cmd("pause #{OptsToS.new(*args)}").join.chomp
|
126
126
|
nil
|
@@ -542,20 +542,65 @@ class Gnuplot
|
|
542
542
|
s.pack("d*")
|
543
543
|
end
|
544
544
|
end
|
545
|
+
|
546
|
+
def self.array_shape(a)
|
547
|
+
if a.kind_of?(Array)
|
548
|
+
is_2d = true
|
549
|
+
is_1d = true
|
550
|
+
size_min = nil
|
551
|
+
a.each do |b|
|
552
|
+
if b.kind_of?(Array)
|
553
|
+
is_1d = false
|
554
|
+
if b.any?{|c| c.kind_of?(Array)}
|
555
|
+
is_2d = false
|
556
|
+
elsif size_min.nil? || b.size < size_min
|
557
|
+
size_min = b.size
|
558
|
+
end
|
559
|
+
else
|
560
|
+
is_2d = false
|
561
|
+
end
|
562
|
+
break if !is_1d && !is_2d
|
563
|
+
end
|
564
|
+
if is_1d
|
565
|
+
[a.size]
|
566
|
+
elsif is_2d
|
567
|
+
[a.size, size_min]
|
568
|
+
else
|
569
|
+
kernel_raise GnuplotError, "not suitable Array for data"
|
570
|
+
end
|
571
|
+
elsif a.respond_to?(:shape)
|
572
|
+
a.shape
|
573
|
+
else
|
574
|
+
kernel_raise GnuplotError, "not suitable type for data"
|
575
|
+
end
|
576
|
+
end
|
545
577
|
end
|
546
578
|
|
547
579
|
# @private
|
548
580
|
class SPlotRecord < PlotData # :nodoc: all
|
549
|
-
|
550
|
-
|
551
|
-
|
581
|
+
|
582
|
+
def initialize(x,y,z)
|
583
|
+
@text = false
|
584
|
+
@data = [x,y,z].map{|a| a.flatten}
|
585
|
+
@n = @data.map{|a| a.size}.min
|
586
|
+
shape = PlotData.array_shape(z)
|
587
|
+
if shape.size >= 2
|
588
|
+
n = shape[1]*shape[0]
|
589
|
+
if @n < n
|
590
|
+
kernel_raise GnuplotError, "data size mismatch"
|
591
|
+
end
|
592
|
+
@n = n
|
593
|
+
@record = "#{shape[1]},#{shape[0]}"
|
594
|
+
else
|
595
|
+
@record = "#{@n}"
|
596
|
+
end
|
552
597
|
end
|
553
598
|
|
554
599
|
def cmd_str
|
555
600
|
if @text
|
556
601
|
"'-'"
|
557
602
|
else
|
558
|
-
"'-' binary record=(#{@
|
603
|
+
"'-' binary record=(#{@record}) format='%float64' using 1:2:3"
|
559
604
|
end
|
560
605
|
end
|
561
606
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: numo-gnuplot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masahiro TANAKA
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|