forked from clbustos/rubyvis
/
README.txt
131 lines (96 loc) · 3.15 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
= Rubyvis
* http://rubyvis.rubyforge.org/
== DESCRIPTION:
Ruby port of Protovis[http://vis.stanford.edu/protovis/], a great visualization toolkit
== FEATURES/PROBLEMS:
Implemented:
* Marks: All, except transient and transitions.
* Layout: Partition, Stack and Treemap.
Using protovis examples[http://vis.stanford.edu/protovis/ex/] as reference
* Conventional: All working
* Custom:
* Backer's Barley
* Burtin's Antibiotics
* Hierarchies:
* Sunbursts
* Icicles
* Treemaps
I try to maintain, when posible, complete compatibility with Javascript API, including camel case naming of functions. Johnson [http://github.com/jbarnette/johnson] - the lovely Javascript wrapper inside Ruby embrace - is our friend to test implementation of basic object.
User could use +pv+ freely, cause is defined as a global method which call Rubyvis.
== CURRENT PROGRESS
* pv.js
* pv-internals.js
* color/Color.js
* color/Colors.js
* data/Arrays.js
* data/Histogram.js
* data/Numbers.js
* data/LinearScale.js
* data/LogScale.js (incomplete)
* data/Nest.js
* data/QuantitativeScale.js
* data/OrdinalScale.js
* data/Scale.js
* layout/Hierarchy.js
* layout/Layout.js
* layout/Hierarchy.js
* layout/Network.js
* layout/Partition.js
* layout/Stack.js
* mark/Anchor.js
* mark/Area.js
* mark/Bar.js
* mark/Dot.js
* mark/Label.js
* mark/Line.js
* mark/Mark.js
* mark/Panel.js
* mark/Rule.js
* mark/Wedge.js
* scene/SvgBar.js
* scene/SvgLabel.js
* scene/SvgLine.js
* scene/SvgPanel.js
* scene/SvgRule.js
* scene/SvgScene.js
* scene/SvgWedge.js
* text/Format.js (incomplete)
* text/NumberFormat.js (incomplete)
== SYNOPSIS:
The primary API, based on Gregory Brown's Ruby Best Practices, uses blocks and name of marks as methods
require 'rubyvis'
vis = Rubyvis::Panel.new do
width 150
height 150
bar do
data [1, 1.2, 1.7, 1.5, 0.7, 0.3]
width 20
height {|d| d * 80}
bottom(0)
left {index * 25}
end
end
vis.render
puts vis.to_svg
The library allows you to use chain methods API, like original protovis
require 'rubyvis'
vis = Rubyvis::Panel.new.width(150).height(150);
vis.add(pv.Bar).
data([1, 1.2, 1.7, 1.5, 0.7, 0.3]).
width(20).
height(lambda {|d| d * 80}).
bottom(0).
left(lambda {self.index * 25});
vis.render
puts vis.to_svg
See examples directory for original protovis examples adaptations and others graphics
== THE MOST FREQUENT QUESTION (MFQ)
¿Why use a server-side technology if I can use a client-side, which is faster and more economic for developer?
If you want to present graphs: (a) complex and/or dynamically generated, (b) only on the web and (c) on modern browsers, Protovis[http://vis.stanford.edu/protovis/] is an excellent option. For simpler charts, Protovis is overkill. I recomend jqPlot[http://www.jqplot.com/]
Rubyvis is designed mainly for off-line operation, like batch creation of graphs for use on printed documents (rtf-pdf), with possibility of use easily the script for on-line use.
== REQUIREMENTS:
Tested on Ruby 1.8.7, 1.9.1, 1.9.2-p0 and ruby-head (future 1.9.3)
== INSTALL:
$ sudo gem install rubyvis
== LICENSE:
GPL-2