svg-graph 1.0.5 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/History.txt +18 -0
- data/README.markdown +90 -6
- data/Rakefile +26 -14
- data/lib/SVG/Graph/Bar.rb +2 -2
- data/lib/SVG/Graph/BarBase.rb +25 -24
- data/lib/SVG/Graph/BarHorizontal.rb +1 -1
- data/lib/SVG/Graph/ErrBar.rb +189 -0
- data/lib/SVG/Graph/Graph.rb +141 -64
- data/lib/SVG/Graph/Line.rb +1 -1
- data/lib/SVG/Graph/Pie.rb +76 -49
- data/lib/SVG/Graph/Plot.rb +2 -2
- data/lib/SVG/Graph/Schedule.rb +18 -19
- data/lib/SVG/Graph/TimeSeries.rb +26 -22
- data/lib/svggraph.rb +12 -10
- data/test/test_svg_graph.rb +48 -6
- metadata +41 -136
- data.tar.gz.sig +0 -2
- data/Manifest.txt +0 -56
- data/build.xml +0 -143
- data/dist.xml.in +0 -46
- data/images/bar.png +0 -0
- data/images/bar.svg +0 -76
- data/images/bar.svgz +0 -0
- data/images/barhorizontal.png +0 -0
- data/images/barhorizontal.svg +0 -76
- data/images/barhorizontal.svgz +0 -0
- data/images/line.png +0 -0
- data/images/line.svg +0 -80
- data/images/line.svgz +0 -0
- data/images/pie.png +0 -0
- data/images/pie.svg +0 -70
- data/images/pie.svgz +0 -0
- data/images/plot.png +0 -0
- data/images/plot.svg +0 -131
- data/images/plot.svgz +0 -0
- data/images/schedule.png +0 -0
- data/images/schedule.svg +0 -67
- data/images/timeseries.png +0 -0
- data/images/timeseries.svg +0 -179
- data/images/timeseries.svgz +0 -0
- data/index.xml +0 -281
- data/install.rb +0 -161
- data/screenshots.xml +0 -148
- data/style/common.xsl +0 -37
- data/style/release_html.xsl +0 -169
- data/style/release_txt.xsl +0 -25
- data/svg-graph.gemspec +0 -58
- data/test/data.txt +0 -4
- data/test/plot.rb +0 -51
- data/test/schedule.rb +0 -43
- data/test/single.rb +0 -33
- data/test/test.rb +0 -54
- data/test/test_data_point.rb +0 -67
- data/test/test_plot.rb +0 -282
- data/test/timeseries.rb +0 -58
- metadata.gz.sig +0 -1
data/images/timeseries.svgz
DELETED
Binary file
|
data/index.xml
DELETED
@@ -1,281 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
3
|
-
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
4
|
-
<article>
|
5
|
-
<title>SVG::Graph</title>
|
6
|
-
|
7
|
-
<subtitle>@ANT_VERSION@</subtitle>
|
8
|
-
|
9
|
-
<articleinfo>
|
10
|
-
<date>@ANT_DATE@</date>
|
11
|
-
|
12
|
-
<author>
|
13
|
-
<firstname>Sean</firstname>
|
14
|
-
|
15
|
-
<surname>Russell</surname>
|
16
|
-
|
17
|
-
<email>serATgermaneHYPHENsoftwareDOTcom</email>
|
18
|
-
</author>
|
19
|
-
</articleinfo>
|
20
|
-
|
21
|
-
<sect1>
|
22
|
-
<title>What is it?</title>
|
23
|
-
|
24
|
-
<para>SVG:::Graph is a pure Ruby library for generating charts, which are
|
25
|
-
a type of graph where the values of one axis are not scalar. SVG::Graph
|
26
|
-
has a verry similar API to the Perl library SVG::TT::Graph, and the
|
27
|
-
resulting charts also look the same. This isn't surprising, because
|
28
|
-
SVG::Graph started as a loose port of SVG::TT::Graph, although the
|
29
|
-
internal code no longer resembles the Perl original at all.</para>
|
30
|
-
|
31
|
-
<para>SVG::Graph isn't only for charts. With version 0.4.0, support for
|
32
|
-
Plot charts was added, so scalar data may now be charted.</para>
|
33
|
-
</sect1>
|
34
|
-
|
35
|
-
<sect1>
|
36
|
-
<title>What's new?</title>
|
37
|
-
<para>You can find that out in the <ulink
|
38
|
-
url='changelog.html'>change log.</ulink></para>
|
39
|
-
</sect1>
|
40
|
-
|
41
|
-
<sect1>
|
42
|
-
<title>Screenshot</title>
|
43
|
-
|
44
|
-
<para>Gotta have one.</para>
|
45
|
-
|
46
|
-
<mediaobject>
|
47
|
-
<imageobject>
|
48
|
-
<imagedata fileref="images/pie.svg" format="SVG" />
|
49
|
-
</imageobject>
|
50
|
-
</mediaobject>
|
51
|
-
|
52
|
-
<para>Here's a PNG version of the above image for the
|
53
|
-
SVG-challenged:</para>
|
54
|
-
|
55
|
-
<mediaobject>
|
56
|
-
<imageobject>
|
57
|
-
<imagedata fileref="images/pie.png" format="PNG" />
|
58
|
-
</imageobject>
|
59
|
-
</mediaobject>
|
60
|
-
|
61
|
-
<para>The SVG version is <emphasis>much</emphasis> cooler. <ulink
|
62
|
-
url="screenshots.html">More screenshots are available</ulink>.</para>
|
63
|
-
</sect1>
|
64
|
-
|
65
|
-
<sect1>
|
66
|
-
<title>Why use it?</title>
|
67
|
-
|
68
|
-
<para>If you're a Ruby programmer, you can't use SVG::TT::Graph directly.
|
69
|
-
This package is for you.</para>
|
70
|
-
|
71
|
-
<para>If you want one of the features that this package has that the Perl
|
72
|
-
version doesn't, and you don't mind doing your graph code in Ruby, then
|
73
|
-
this package is for you.</para>
|
74
|
-
|
75
|
-
<para>If you want to generate SVGs that aren't CSS styled (and work with
|
76
|
-
more SVG renderers), use this package.</para>
|
77
|
-
|
78
|
-
<para>If you're a Perl wienie or you have something against Ruby, use
|
79
|
-
SVG::TT::Graph. If it doesn't provide you with the features you want, hack
|
80
|
-
it yourself.</para>
|
81
|
-
</sect1>
|
82
|
-
|
83
|
-
<sect1>
|
84
|
-
<title>Getting it</title>
|
85
|
-
|
86
|
-
<para>The source archives contain the example script(s) and an install
|
87
|
-
script. Documentation must be downloaded separately.<itemizedlist>
|
88
|
-
<listitem>
|
89
|
-
<para><ulink
|
90
|
-
url="http://www.germane-software.com/archives/svg_graph_@ANT_VERSION@.tgz">Gzipped
|
91
|
-
sources</ulink></para>
|
92
|
-
</listitem>
|
93
|
-
|
94
|
-
<listitem>
|
95
|
-
<para><ulink
|
96
|
-
url="http://www.germane-software.com/archives/svg_graph_api_@ANT_VERSION@.tgz">Gzipped
|
97
|
-
documentation</ulink></para>
|
98
|
-
</listitem>
|
99
|
-
|
100
|
-
<listitem>
|
101
|
-
<para><ulink
|
102
|
-
url="http://www.germane-software.com/archives/svg_graph_@ANT_VERSION@.zip">Zipped
|
103
|
-
sources</ulink></para>
|
104
|
-
</listitem>
|
105
|
-
|
106
|
-
<listitem>
|
107
|
-
<para><ulink
|
108
|
-
url="http://www.germane-software.com/archives/svg_graph_api_@ANT_VERSION@.zip">Zipped
|
109
|
-
documentation</ulink></para>
|
110
|
-
</listitem>
|
111
|
-
</itemizedlist></para>
|
112
|
-
</sect1>
|
113
|
-
|
114
|
-
<sect1>
|
115
|
-
<title>Why?</title>
|
116
|
-
|
117
|
-
<para>The SVG::TT:Graph package is just fine. It lacked a couple of
|
118
|
-
features that I wanted, and it was in Perl<footnote>
|
119
|
-
<para>Perl is from Hell. The language is bad enough, but working with
|
120
|
-
the package system -- CPAN, etc. -- is an exercize in masochism. I'd
|
121
|
-
rather chew on glass.</para>
|
122
|
-
</footnote>, so I re-implemented it.</para>
|
123
|
-
|
124
|
-
<para>SVG::Graph is not a straight port of SVG::TT::Graph, because the
|
125
|
-
Perl version uses templates, and I don't believe that this is a job for
|
126
|
-
templates. Templates are great when you have lots of context containing a
|
127
|
-
little bit of evaluated code, but the Graph classes are mostly code with a
|
128
|
-
little SVG; therefore, it makes more sense (and is a hell of a lot more
|
129
|
-
readable) to have the SVG embedded in the code rather than vice versa.
|
130
|
-
However, some of the logic was directly cut and paste out of
|
131
|
-
SVG::TT::Graph, as was the entire CSS code and chunks of the
|
132
|
-
documentation, and the part of the API that the user sees is almost
|
133
|
-
identical to the original.</para>
|
134
|
-
|
135
|
-
<para>In version 0.2.0 I completely refactored the code to make it more
|
136
|
-
modular. As a result, the core Graph class contains most of the graph
|
137
|
-
drawing primatives, and the specializations (Bar, BarHorizontal, Line,
|
138
|
-
Pie, etc.) only draw the plot itself. This results in many fewer lines of
|
139
|
-
code, and that code is more robust. SVG::TT::Graph re-implemented most of
|
140
|
-
the code for every plot type, whereas SVG::Graph reuses most of the
|
141
|
-
code.</para>
|
142
|
-
|
143
|
-
<para>I intend SVG::Graph to have more features than SVG::TT::Graph, which
|
144
|
-
is the main reason for the re-implementation. One such feature is the
|
145
|
-
ability to change the stacking of the data sets. For instance, SVG::Graph
|
146
|
-
allows you to place the data bars from multiple data sets on the same
|
147
|
-
graph side-by-side, rather than overlapping.</para>
|
148
|
-
|
149
|
-
<para>SVG::Graph also has an option to disable CSS styling of the graphs.
|
150
|
-
This has a number of consequences, both positive and negative. The SVGs
|
151
|
-
generated can be larger without CSS, and they are harder to dynamically
|
152
|
-
style (you can't use your own styles with CSS disabled). However, a number
|
153
|
-
of SVG renderers do not support or do not fully support CSS in SVG (KSVG
|
154
|
-
in Konqueror and librsvg, for instance). Adobe and Batik both support CSS,
|
155
|
-
so if those are your targets, you can use CSS. For maximum compatability,
|
156
|
-
disable CSS with the :no_css attriibute.</para>
|
157
|
-
|
158
|
-
<para>The currently supported graph types are:</para>
|
159
|
-
|
160
|
-
<itemizedlist>
|
161
|
-
<listitem>
|
162
|
-
<para>Bar</para>
|
163
|
-
</listitem>
|
164
|
-
|
165
|
-
<listitem>
|
166
|
-
<para>BarHorizontal</para>
|
167
|
-
</listitem>
|
168
|
-
|
169
|
-
<listitem>
|
170
|
-
<para>Line</para>
|
171
|
-
</listitem>
|
172
|
-
|
173
|
-
<listitem>
|
174
|
-
<para>Pie</para>
|
175
|
-
</listitem>
|
176
|
-
|
177
|
-
<listitem>
|
178
|
-
<para>Plot (this is scalar data)</para>
|
179
|
-
</listitem>
|
180
|
-
|
181
|
-
<listitem>
|
182
|
-
<para>TimeSeries (also scalar data, with one axis being dates)</para>
|
183
|
-
</listitem>
|
184
|
-
|
185
|
-
<listitem>
|
186
|
-
<para>Schedule (scalar time range data, with non-scalar Y axis)</para>
|
187
|
-
</listitem>
|
188
|
-
</itemizedlist>
|
189
|
-
</sect1>
|
190
|
-
|
191
|
-
<sect1>
|
192
|
-
<title>Dependancies</title>
|
193
|
-
|
194
|
-
<para>REXML 3.0+, or Ruby 1.8+. If you want to use the SVG compression
|
195
|
-
feature, which generates zlib compressed SVGs, you must also have the Ruby
|
196
|
-
zlib library installed.</para>
|
197
|
-
</sect1>
|
198
|
-
|
199
|
-
<sect1>
|
200
|
-
<title>Usage</title>
|
201
|
-
|
202
|
-
<para>There's API documentation available, either <ulink
|
203
|
-
url="http://www.germane-software.com/software/SVG/SVG::Graph/doc">online</ulink>
|
204
|
-
or for <ulink
|
205
|
-
url="http://www.germane-software.com/archive/svg_graph_api_@ANT_VERSION@.tgz">download</ulink>.
|
206
|
-
Or, you can use rdoc to generate it yourself. The API documentation is
|
207
|
-
pretty comprehensive (Leo Lapworth did a really good job on the docs, and
|
208
|
-
I stole most of them), and there's an example application in the main
|
209
|
-
directory.</para>
|
210
|
-
</sect1>
|
211
|
-
|
212
|
-
<sect1>
|
213
|
-
<title>Notes</title>
|
214
|
-
|
215
|
-
<sect2>
|
216
|
-
<title>SVG feature support</title>
|
217
|
-
|
218
|
-
<para>Some SVG renderers (librsvg) do not understand CSS. This is a
|
219
|
-
problem with Perl's SVG::TT::Graph, because <emphasis>all</emphasis> of
|
220
|
-
the styling of the charts it generates is done with CSS. SVG::Graph is
|
221
|
-
able to inline the styles, rendering graphs that are compatible with
|
222
|
-
more viewers.</para>
|
223
|
-
|
224
|
-
<para>The Pie chart uses the feGaussianBlur filter to generate the
|
225
|
-
shadow, whiich is also unsupperted by some renderers (librsvg). The
|
226
|
-
shadow will not look as smooth on those displays, although it will
|
227
|
-
render.</para>
|
228
|
-
</sect2>
|
229
|
-
|
230
|
-
<sect2>
|
231
|
-
<title>Sizes</title>
|
232
|
-
|
233
|
-
<para>The bar charts PNGs tend to be smaller than the uncompressed SVGs.
|
234
|
-
In the best case (for PNG), the PNG is 66% of the size of the
|
235
|
-
uncompressed SVG.</para>
|
236
|
-
|
237
|
-
<para>For line and pie charts, which are a little more visually complex,
|
238
|
-
the SVGs are smaller than the PNGs. In the best case, the PNG is 130%
|
239
|
-
the size of the SVG. In the worst case, the PNG is 220% the size of the
|
240
|
-
uncompressed SVG.</para>
|
241
|
-
|
242
|
-
<para>The compressed SVGs are always much smaller than the PNGs. In the
|
243
|
-
best case (a vertical bar chart), the PNG is 4.4 times the size of the
|
244
|
-
compressed SVG, and in the worst case (for a pie chart), it is over 12
|
245
|
-
times the size of the compressed SVG.</para>
|
246
|
-
|
247
|
-
<para>These values were measured with inline styled SVGs, and the PNGs
|
248
|
-
were reduced to 8-bit, indexed images, and were crushed with
|
249
|
-
pngcrush.</para>
|
250
|
-
</sect2>
|
251
|
-
</sect1>
|
252
|
-
|
253
|
-
<sect1>
|
254
|
-
<title>Bugs</title>
|
255
|
-
|
256
|
-
<para>SVG::Graph probably contains bugs. In fact, it is probably mostly
|
257
|
-
bugs, held together with some working code around them. In particular,
|
258
|
-
SVG::Graph is probably really intolerant of *your* bugs, and is likely
|
259
|
-
entirely unhelpful in helping you track down problems. We can only pray
|
260
|
-
that this situation improves<footnote>
|
261
|
-
<para>Prayer is much more effective when accompanied by sums of cash
|
262
|
-
sent to the author.</para>
|
263
|
-
</footnote>.</para>
|
264
|
-
|
265
|
-
<para>There is a <ulink
|
266
|
-
url="http://www.germane-software.com/cgi-bin/roundup/svg-graph">bug and
|
267
|
-
feature request database</ulink>; use this, and please create a user
|
268
|
-
account if you don't have one, so that I can email you if I have
|
269
|
-
questions. Alternatively, post anonymously, and check the database
|
270
|
-
often.</para>
|
271
|
-
</sect1>
|
272
|
-
|
273
|
-
<sect1>
|
274
|
-
<title>Repository</title>
|
275
|
-
|
276
|
-
<para>The sourcecode repository is a <ulink
|
277
|
-
url="http://subversion.tigris.org">Subversion</ulink> repository, located
|
278
|
-
<ulink
|
279
|
-
url="http://www.germane-software.com/repositories/public/SVG">here</ulink>.</para>
|
280
|
-
</sect1>
|
281
|
-
</article>
|
data/install.rb
DELETED
@@ -1,161 +0,0 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
|
-
################################################################################
|
3
|
-
# #
|
4
|
-
# Name: install.rb #
|
5
|
-
# Author: Sean E Russell <ser@germane-software.com> #
|
6
|
-
# Version: $Id: $
|
7
|
-
# Date: *2002-174 #
|
8
|
-
# Description: #
|
9
|
-
# This is a generic installation script for pure ruby sources. Features #
|
10
|
-
# include: #
|
11
|
-
# * Clean uninstall #
|
12
|
-
# * Installation into an absolute path #
|
13
|
-
# * Installation into a temp path (useful for systems like Portage) #
|
14
|
-
# * Noop mode, for testing #
|
15
|
-
# To set for a different system, change the SRC directory to point to the #
|
16
|
-
# package name / source directory for the project. #
|
17
|
-
# #
|
18
|
-
################################################################################
|
19
|
-
|
20
|
-
# CHANGE THIS
|
21
|
-
SRC = ['SVG' ]
|
22
|
-
STRIP = ''
|
23
|
-
SETVERSION = 'SVG'
|
24
|
-
SRCVERSION = '@ANT_VERSION@'
|
25
|
-
DATE = '@ANT_DATE@'
|
26
|
-
|
27
|
-
################################################################################
|
28
|
-
# CHANGE NOTHING BELOW THIS LINE
|
29
|
-
|
30
|
-
Dir.chdir ".." if Dir.pwd =~ /bin.?$/
|
31
|
-
|
32
|
-
require 'getoptlong'
|
33
|
-
require 'rbconfig'
|
34
|
-
require 'ftools'
|
35
|
-
require 'find'
|
36
|
-
|
37
|
-
opts = GetoptLong.new( [ '--uninstall', '-u', GetoptLong::NO_ARGUMENT],
|
38
|
-
[ '--destdir', '-d', GetoptLong::REQUIRED_ARGUMENT ],
|
39
|
-
[ '--target', '-t', GetoptLong::REQUIRED_ARGUMENT ],
|
40
|
-
[ '--concurrent', '-c', GetoptLong::NO_ARGUMENT],
|
41
|
-
[ '--help', '-h', GetoptLong::NO_ARGUMENT],
|
42
|
-
[ '--noop', '-n', GetoptLong::NO_ARGUMENT])
|
43
|
-
|
44
|
-
|
45
|
-
destdir = File.join(Config::CONFIG['sitedir'],
|
46
|
-
"#{Config::CONFIG['MAJOR']}.#{Config::CONFIG['MINOR']}")
|
47
|
-
|
48
|
-
uninstall = false
|
49
|
-
prepend = nil
|
50
|
-
help = false
|
51
|
-
opts.each do |opt,arg|
|
52
|
-
case opt
|
53
|
-
when '--concurrent'
|
54
|
-
CONCURRENT = true
|
55
|
-
when '--destdir'
|
56
|
-
prepend = arg
|
57
|
-
when '--uninstall'
|
58
|
-
uninstall = true
|
59
|
-
when '--target'
|
60
|
-
destdir = arg
|
61
|
-
when '--help'
|
62
|
-
help = true
|
63
|
-
when '--noop'
|
64
|
-
NOOP = true
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
destdir = File.join prepend, destdir if prepend
|
69
|
-
|
70
|
-
def transmogrify( dir )
|
71
|
-
dir = dir.sub( /^#{STRIP}\//, '' )
|
72
|
-
if defined? CONCURRENT
|
73
|
-
dir.sub( /#{SETVERSION}/, "#{SETVERSION}-#{SRCVERSION}")
|
74
|
-
else
|
75
|
-
dir
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
if help
|
80
|
-
puts "Installs #{SRC.inspect}.\nUsage: #$0 [[-u] [-n] [-c] [-t <dir>|-d <dir>]|-h]"
|
81
|
-
puts " -u --uninstall\n Uninstalls the package"
|
82
|
-
puts " -c --concurrent\n Install concurrently, IE, into"
|
83
|
-
for d in SRC
|
84
|
-
puts " #{destdir}/#{transmogrify( d )}"
|
85
|
-
end
|
86
|
-
puts " The default behavior is to upgrade the current installation,"
|
87
|
-
puts " by installing into"
|
88
|
-
for d in SRC
|
89
|
-
puts " #{destdir}/#{transmogrify( d )}"
|
90
|
-
end
|
91
|
-
puts " -t --target\n Installs the software at an absolute location, EG:"
|
92
|
-
puts " #$0 -t /usr/local/lib/ruby"
|
93
|
-
puts " will put the software directly underneath /usr/local/lib/ruby;"
|
94
|
-
for d in SRC
|
95
|
-
puts " /usr/local/lib/ruby/#{transmogrify( d )}"
|
96
|
-
end
|
97
|
-
puts " -d --destdir\n Installs the software at a relative location, EG:"
|
98
|
-
puts " #$0 -d /tmp"
|
99
|
-
puts " will put the software under tmp, using your ruby environment."
|
100
|
-
for d in SRC
|
101
|
-
puts " /tmp#{destdir}/#{transmogrify( d )}"
|
102
|
-
end
|
103
|
-
puts " -n --noop\n Don't actually do anything; just print out what it"
|
104
|
-
puts " would do."
|
105
|
-
exit 0
|
106
|
-
end
|
107
|
-
|
108
|
-
def install destdir
|
109
|
-
puts "Installing in #{destdir}"
|
110
|
-
begin
|
111
|
-
for src in SRC
|
112
|
-
Find.find(src) { |file|
|
113
|
-
dstfile = transmogrify( file )
|
114
|
-
next if file =~ /CVS|\.svn/
|
115
|
-
dst = File.join( destdir, dstfile )
|
116
|
-
if defined? NOOP
|
117
|
-
puts ">> #{dst}" if file =~ /\.rb$/
|
118
|
-
else
|
119
|
-
File.makedirs( File.dirname(dst) )
|
120
|
-
File.install(file, dst, 0644, true) if file =~ /\.rb$/
|
121
|
-
end
|
122
|
-
}
|
123
|
-
end
|
124
|
-
rescue
|
125
|
-
puts $!
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
def uninstall destdir
|
130
|
-
puts "Uninstalling in #{destdir}"
|
131
|
-
begin
|
132
|
-
puts "Deleting:"
|
133
|
-
dirs = []
|
134
|
-
Find.find(File.join(destdir,SRC)) do |file|
|
135
|
-
file.sub!( /#{SRC}/, "#{SRC}-#{SRCVERSION}") if defined? CONCURRENT
|
136
|
-
if defined? NOOP
|
137
|
-
puts "-- #{file}" if File.file? file
|
138
|
-
else
|
139
|
-
File.rm_f file,true if File.file? file
|
140
|
-
end
|
141
|
-
dirs << file if File.directory? file
|
142
|
-
end
|
143
|
-
dirs.sort { |x,y|
|
144
|
-
y.length <=> x.length
|
145
|
-
}.each { |d|
|
146
|
-
if defined? NOOP
|
147
|
-
puts "-- #{d}"
|
148
|
-
else
|
149
|
-
puts d
|
150
|
-
Dir.delete d
|
151
|
-
end
|
152
|
-
}
|
153
|
-
rescue
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
if uninstall
|
158
|
-
uninstall destdir
|
159
|
-
else
|
160
|
-
install destdir
|
161
|
-
end
|
data/screenshots.xml
DELETED
@@ -1,148 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
3
|
-
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
4
|
-
<article>
|
5
|
-
<title>Screenshots</title>
|
6
|
-
|
7
|
-
<sect1>
|
8
|
-
<title>SVGs</title>
|
9
|
-
|
10
|
-
<para>Here are the SVG screenshots in all their glory. KSVG doesn't handle
|
11
|
-
CSS properly yet, and neither does librsvg. Adobe and Batik both
|
12
|
-
do.<mediaobject>
|
13
|
-
<imageobject>
|
14
|
-
<imagedata fileref="images/bar.svg" format="SVG" />
|
15
|
-
</imageobject>
|
16
|
-
|
17
|
-
<caption>
|
18
|
-
<para>SVG::Chart::Bar</para>
|
19
|
-
</caption>
|
20
|
-
</mediaobject><mediaobject>
|
21
|
-
<imageobject>
|
22
|
-
<imagedata fileref="images/barhorizontal.svg" format="SVG" />
|
23
|
-
</imageobject>
|
24
|
-
|
25
|
-
<caption>
|
26
|
-
<para>SVG::Chart::BarHorizontal</para>
|
27
|
-
</caption>
|
28
|
-
</mediaobject><mediaobject>
|
29
|
-
<imageobject>
|
30
|
-
<imagedata fileref="images/line.svg" format="SVG" />
|
31
|
-
</imageobject>
|
32
|
-
|
33
|
-
<caption>
|
34
|
-
<para>SVG::Chart::Line</para>
|
35
|
-
</caption>
|
36
|
-
</mediaobject><mediaobject>
|
37
|
-
<imageobject>
|
38
|
-
<imagedata fileref="images/pie.svg" format="SVG" />
|
39
|
-
</imageobject>
|
40
|
-
|
41
|
-
<caption>
|
42
|
-
<para>SVG::Chart::Pie</para>
|
43
|
-
</caption>
|
44
|
-
</mediaobject><mediaobject>
|
45
|
-
<imageobject>
|
46
|
-
<imagedata fileref="images/plot.svg" format="SVG" />
|
47
|
-
</imageobject>
|
48
|
-
|
49
|
-
<caption>
|
50
|
-
<para>SVG::Chart::Plot</para>
|
51
|
-
</caption>
|
52
|
-
</mediaobject><mediaobject>
|
53
|
-
<imageobject>
|
54
|
-
<imagedata fileref="images/timeseries.svg" format="SVG" />
|
55
|
-
</imageobject>
|
56
|
-
|
57
|
-
<caption>
|
58
|
-
<para>SVG::Chart::TimeSeries</para>
|
59
|
-
</caption>
|
60
|
-
</mediaobject><mediaobject>
|
61
|
-
<imageobject>
|
62
|
-
<imagedata fileref="images/schedule.svg" format="SVG" />
|
63
|
-
</imageobject>
|
64
|
-
|
65
|
-
<caption>
|
66
|
-
<para>SVG::Chart::Schedule</para>
|
67
|
-
</caption>
|
68
|
-
</mediaobject></para>
|
69
|
-
</sect1>
|
70
|
-
|
71
|
-
<sect1>
|
72
|
-
<title>PNGs</title>
|
73
|
-
|
74
|
-
<para>Here are the icky, bitmapped PNGs. PNG is a beautiful file format,
|
75
|
-
don't get me wrong; but it is best for things that vector graphics
|
76
|
-
<emphasis>aren't</emphasis> good at, such as pictures.</para>
|
77
|
-
|
78
|
-
<mediaobject>
|
79
|
-
<imageobject>
|
80
|
-
<imagedata fileref="images/bar.png" format="PNG" />
|
81
|
-
</imageobject>
|
82
|
-
|
83
|
-
<caption>
|
84
|
-
<para>SVG::Chart::Bar</para>
|
85
|
-
</caption>
|
86
|
-
</mediaobject>
|
87
|
-
|
88
|
-
<mediaobject>
|
89
|
-
<imageobject>
|
90
|
-
<imagedata fileref="images/barhorizontal.png" format="PNG" />
|
91
|
-
</imageobject>
|
92
|
-
|
93
|
-
<caption>
|
94
|
-
<para>SVG::Chart::BarHorizontal</para>
|
95
|
-
</caption>
|
96
|
-
</mediaobject>
|
97
|
-
|
98
|
-
<mediaobject>
|
99
|
-
<imageobject>
|
100
|
-
<imagedata fileref="images/line.png" format="PNG" />
|
101
|
-
</imageobject>
|
102
|
-
|
103
|
-
<caption>
|
104
|
-
<para>SVG::Chart::Line</para>
|
105
|
-
</caption>
|
106
|
-
</mediaobject>
|
107
|
-
|
108
|
-
<mediaobject>
|
109
|
-
<imageobject>
|
110
|
-
<imagedata fileref="images/pie.png" format="PNG" />
|
111
|
-
</imageobject>
|
112
|
-
|
113
|
-
<caption>
|
114
|
-
<para>SVG::Chart::Pie</para>
|
115
|
-
</caption>
|
116
|
-
</mediaobject>
|
117
|
-
|
118
|
-
<mediaobject>
|
119
|
-
<imageobject>
|
120
|
-
<imagedata fileref="images/plot.png" format="PNG" />
|
121
|
-
</imageobject>
|
122
|
-
|
123
|
-
<caption>
|
124
|
-
<para>SVG::Chart::Plot</para>
|
125
|
-
</caption>
|
126
|
-
</mediaobject>
|
127
|
-
|
128
|
-
<mediaobject>
|
129
|
-
<imageobject>
|
130
|
-
<imagedata fileref="images/timeseries.png" format="PNG" />
|
131
|
-
</imageobject>
|
132
|
-
|
133
|
-
<caption>
|
134
|
-
<para>SVG::Chart::TimeSeries</para>
|
135
|
-
</caption>
|
136
|
-
</mediaobject>
|
137
|
-
|
138
|
-
<mediaobject>
|
139
|
-
<imageobject>
|
140
|
-
<imagedata fileref="images/schedule.png" format="PNG" />
|
141
|
-
</imageobject>
|
142
|
-
|
143
|
-
<caption>
|
144
|
-
<para>SVG::Chart::Schedule</para>
|
145
|
-
</caption>
|
146
|
-
</mediaobject>
|
147
|
-
</sect1>
|
148
|
-
</article>
|