visualisation-utils 0.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md ADDED
@@ -0,0 +1,28 @@
1
+ visualisation-utils
2
+ ===================
3
+
4
+ a collection of scripts for standard visualisation tasks
5
+
6
+ scatter-plot
7
+ ============
8
+
9
+ Prints scatter plots of one or more columns of whitespace separated data using
10
+ gnuplot as a backend
11
+
12
+
13
+ ~~~ .bash
14
+ cat | scatter-plot <<'END'
15
+ 1 1
16
+ 2 4
17
+ 3 9
18
+ 4 16
19
+ 5 25
20
+ END
21
+ ~~~
22
+
23
+ This incantation will bring up the gnuplot gui with the following graph:
24
+
25
+ ![gui](https://raw.github.com/programmiersportgruppe/visualisation-utils/master/doc/gnuplot-gui.png)
26
+
27
+
28
+
data/bin/scatter-plot ADDED
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env ruby
2
+ require 'trollop'
3
+
4
+ DATA_FILE_NAME="/tmp/plot-"+`date "+%s"`.strip+".dat"
5
+ PLOT_FILE_NAME="/tmp/plot-"+`date "+%s"`.strip+".plt"
6
+
7
+
8
+ @opts = Trollop::options do
9
+ banner "scatter-plot takes whitespace separated tables from stdin and renders them using gnuplot"
10
+ opt :outfile, "Output file name", :type => String, :short => 'o'
11
+ opt :legends, "Legend for columns, pipe separated list", :type => String, :short => 'l'
12
+ opt :numc, "Number of data columns", :type => Integer, :short => 'c'
13
+ opt :debug, "debug"
14
+ opt :title, "Title", :type=> String, :short => 't'
15
+ end
16
+
17
+ title = @opts[:title] || ""
18
+
19
+ # TODO I do want to be streamed!
20
+ input = `cat`
21
+ File.open(DATA_FILE_NAME, "w"){|f| f.write(input)}
22
+
23
+ numc_input=input.split(/\n/)[0].split(/\w*/).length - 1
24
+
25
+ numc = @opts[:numc] || numc_input
26
+
27
+
28
+ legends = (@opts[:legends] ? @opts[:legends].strip().split(/,/) : (1..(numc)).map{|x| ""}).map{|x| x.strip}
29
+
30
+ font = "Futura"
31
+ font_size = "12"
32
+
33
+ using_list = legends.zip(2..100).map{|text, index| "'#{DATA_FILE_NAME}' using 1:#{index} title \"#{text}\"" }.join(", ")
34
+
35
+
36
+
37
+ if (@opts[:outfile])
38
+ filename = @opts[:outfile]
39
+ extension = filename.gsub(/[^.]*\./,"")
40
+ if (extension == "png")
41
+ terminal=<<EOF
42
+ set term pngcairo font '#{font},#{font_size}' transparent size 1200,800
43
+ set output '#{filename}'
44
+
45
+ EOF
46
+ elsif (extension == "eps")
47
+ terminal=<<EOF
48
+ set term epscairo font '#{font},#{font_size}'
49
+ set output '#{filename}'
50
+ EOF
51
+ elsif (extension == "pdf")
52
+ terminal=<<EOF
53
+ set term pdfcairo font '#{font},#{font_size}'
54
+ set output '#{filename}'
55
+ EOF
56
+ else
57
+ throw "Unknown output format '.#{extension}'."
58
+ end
59
+
60
+
61
+ end
62
+
63
+ script = <<EOF
64
+ #{terminal}
65
+ set key top left
66
+ set title "#{title}"
67
+ plot #{using_list}
68
+
69
+ EOF
70
+
71
+
72
+ puts "data file " + DATA_FILE_NAME
73
+ puts "plot file " + PLOT_FILE_NAME
74
+
75
+
76
+
77
+ File.open(PLOT_FILE_NAME, "w"){|f| f.write(script)}
78
+
79
+ `gnuplot #{PLOT_FILE_NAME}`
Binary file
@@ -0,0 +1,6 @@
1
+ 1 10 8
2
+ 2 8 20
3
+ 3 12 4
4
+ 4 29 2
5
+ 5 40 40
6
+ 6 44 3
@@ -0,0 +1,6 @@
1
+ 1 10
2
+ 2 8
3
+ 3 12
4
+ 4 29
5
+ 5 40
6
+ 6 44
metadata ADDED
@@ -0,0 +1,62 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: visualisation-utils
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Felix Leipold
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-09-11 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: trollop
16
+ requirement: &2153124320 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2153124320
25
+ description: ! "visualisation-utils provides a number of utilities\n for
26
+ visualising data from the command line."
27
+ email: ''
28
+ executables:
29
+ - scatter-plot
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - README.md
34
+ - bin/scatter-plot
35
+ - doc/gnuplot-gui.png
36
+ - test-data/test-two-column.dat
37
+ - test-data/test.dat
38
+ homepage: https://github.com/programmiersportgruppe/visualisation-utils
39
+ licenses: []
40
+ post_install_message:
41
+ rdoc_options: []
42
+ require_paths:
43
+ - lib
44
+ required_ruby_version: !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ requirements: []
57
+ rubyforge_project:
58
+ rubygems_version: 1.8.15
59
+ signing_key:
60
+ specification_version: 3
61
+ summary: utilities for quick visualisation
62
+ test_files: []