README.logo
1To produce an SVG form of the logo with -dev svg (which is the device which
2plplot_logo.py has been explicitly tuned for) execute
3
4make plplot_logo
5
6in either the top-level of the build tree (configured with cmake
7option -DBUILD_TEST=ON) or (after "make install" is run) in the build
8tree of the installed examples configured by the new CMake-based build
9system for those examples. The above command actually runs the
10equivalent of
11
12./plplot_logo.py -dev svg -geometry 760x120 -o plplot_logo.svg
13
14with proper dependencies and with plplot_logo.py run from the correct
15directory with correct directory prefix on the output. It also
16generates plplot_logo.jpg (see below). Both output files end up in
17examples/python (if working in the top-level of the core build tree)
18or python (if working in the top-level of the installed examples build
19tree).
20
21The plplot_logo.svg results look great on konqueror, but they are slow
22to render. The results also look good for display (for the default
23compensation for text shifts) and take very little time to render.
24
25Partially because of the file-bloating issue discussed on list (lots of
26graphical objects outside device boundaries that are still included in the
27file), the size of the file is 1.8M. (Of course, another reason for this
28large file size is there is incredible detail (many triangles) used to
29represent the surface.
30
31If I compress that file using
32
33gzip -c <plplot_logo.svg >| plplot_logo.svgz
34
35then the result is only 97 K (which is almost reasonable) and a factor of
36almost 20 (!) in size over uncompressed. Other results follow:
37
38(1) The compressed result can still be quickly rendered with "display".
39
40(2) The compressed result makes no difference to the slow konqueror rendering,
41but that is konqueror's problem and not ours because of how quickly "display"
42renders the result.
43
44(3) Firefox 2 does not know what to do with the compressed result. For
45the uncompressed result it does not recognize the gradient. These two
46issues should be checked for firefox 3.
47
48(4) scribus-ng quickly imports the compressed result with the same issues (no
49clipping of results at the stated boundary of the device) as for the
50uncompressed results.
51
52(5) The compressed result is completely unrecognized by the w3c validator.
53However, the uncompressed result (after a long upload) validates properly
54at w3c.
55
56Until the *.svgz compressed form becomes well-recognized (not least of
57all by w3c), it is probably best to convert to jpeg to improve
58rendering speed/reduce bandwidth compared to the uncompressed svg
59file. This convert step (also done with the above "make plplot_logo"
60command) appears to get rid of everything outside the device
61boundaries.
62
63convert plplot_logo.svg plplot_logo.jpg
64
65The result has a file size of 34K compared to the original jpeg logo
66(www/img/header.jpg) put together by Werner (with external editor?) which
67has a file size of 42K and which lacks a legend for the logo. The "z axis"
68label is shifted a bit by ImageMagick because of the librsvg-2.22 bug, and
69until this bug is fixed I have put a default option into the original
70plplot_logo.py file to compensate for this bug. The result looks
71essentially the same as the original logo (by design and fine-tuning of
72plplot_logo.py), but the *.svgz form looks substantially better (if only it
73would be more widely recognized).
74
75The future prospects of reducing the uncompressed size of the *.svg result
76to a reasonable value and the compressed size of the *.svgz result to a
77miniscule value are good. First, the solution of the file bloating issue
78discussed on list (many graphical objects outside the device boundary
79clipping limits are included unnecessarily in the file) should reduce the
80file size by roughly a factor of three. An even bigger reduction factor
81for file size is expected when native gradients for file formats that
82support them become supported by PLplot since that means the triangles used
83to represent colour surfaces in PLplot can be made much larger without
84compromising how good the result looks.
85
86Alan W. Irwin 2008-10-19 (revised 2009-12-04)
87
README.pythondemos
1The Status of the Python Examples
2
3For details of how we build PLplot access from Python please consult
4../../bindings/python/README.pythonbuild. The principal module is
5plplot.py. This make all the common PLplot API available to python in a
6user-friendly way. plplot.py wraps the swig-generated plplotc.py which in
7turn wraps the _plplotc extension module (built with the aid of swig). The
8extension module, plplot_widget contains support for loading Plframe
9from python. This functionality is demonstrated with pytkdemo which
10supplies GUI access to python standard examples 0 through 18 (except
11for 14, 15, and 17).
12
13To try out the x??.py examples without a widget simply run pythondemos.py
14to run all of them (0-33) in numerical order (except for 14, 17, and 31 which
15are standalone, and 32 which does not exist). Alternatively run them
16one at at time by executing x??.
17
18These pytkdemo, pythondemos.py, and x?? tests should be run in the python
19subdirectory of the examples directory of the build tree (after python
20prequisites have been built) or the equivalent directory for the installed
21examples build.
22
README.rendering_tests
1We have implemented a number of simple python standalone scripts to test for
2rendering issues with our PLplot device drivers.
3
4N.B. these tests should not be propagated to other languages. python is
5ideal for rapid development and evaluation. Given this, it is expected
6these tests will change substantially over time and more tests will be
7added. Thus, propagating those expected changes to other languages is
8largely pointless.
9
10N.B. the SVG test results for "firefox", "konqueror", and "display" reported
11below at this time of writing (2009-08-12) are for Debian Lenny where
12firefox is iceweasel Version 2.0.0.14-2, konqueror is Version
134:3.5.9.dfsg.1-6, and by default display (Version 7:6.3.7.9.dfsg2-1~lenny1)
14uses the rsvg2 GNOME library to render svg files. Your SVG viewing results
15will differ for other versions of firefox, konqueror, and display. They
16will also differ for other SVG-aware applications because SVG viewing and
17rendering within Linux is still a bit problematic, even though Linux is
18probably in better SVG shape than other platforms.
19
20* test_circle.py (only useful for testing unicode-aware devices) renders a
21series of "LARGE CIRCLE" and "BOX DRAWINGS LIGHT DIAGONAL CROSS" unicode
22characters from (very) large sizes to small sizes to check there is no
23vertical drift in the alignment of the characters, and also to check that
24very large versions of characters are rendered correctly. -dev xcairo
25results have good alignment and good character rendering. -dev svg results
26validate correctly at http://validator.w3.org/,
27have good alignment and good character rendering according to the
28ImageMagick "display" application and firefox, but those same results cannot
29be rendered by konqueror because it cannot find the appropriate system
30fonts. -dev qtwidget results have good alignment, but the large character
31rendering is not reliable ("squashed" left edge of "LARGE CIRCLE" for the
32three largest sizes, but no squashing at the smaller sizes).
33
34* testh.py renders a vertical line at the left edge of the window, a
35horizontal line marking the center of the vertical line, and a centred
36string of 7 "H" characters superimposed on top of the vertical line so the
37horizontal bar of the "H" is very close to the vertical line and parallel
38with it. All drivers we have tested generate correct interactive or file
39results for this figure. Also, the -dev svg output file validates at
40http://validator.w3.org/, and I get good rendering results for both firefox
41and konqueror for that output file. However, those output file results are
42_not_ rendered correctly by the GNOME library, librsvg2, which is used in a
43number of applications (e.g., all GNOME text rendering applications which
44are svg aware such as eog and (depending on how ImageMagick is compiled) the
45ImageMagick "display" application). See
46http://bugzilla.gnome.org/show_bug.cgi?id=525023 for more details.
47
48* test_superscript_subscript.py renders a series of nested superscripts and
49subscripts for single numbers from 0 to 9 and also tries some simple
50superscripts and subscripts for Greek letters and ordinary (Roman) letters.
51Devices that use our traditional Hershey fonts (e.g., -dev xwin) have
52good results for this example, but there is work to do to get similar
53good results for our more modern devices that use other means of
54superscripting and subscripting.
55
56The one current exception to this is -dev svg where the resulting output
57file validates at http://validator.w3.org/, and the dy attribute of the
58nested span tags is written correctly. Furthermore, I get good rendering
59results for this output file using the ImageMagick "display" application.
60However, in this case the vertical positioning after the Greek superscript
61or subscript letters in the output svg file is not rendered correctly by
62mozilla and konqueror. On the other hand, those applications have no
63trouble rendering the text after superscript/subscript Roman (ordinary)
64letters. It appears those applications are having trouble dealing with a
65nested series of span tags when there is a font change (e.g., for Greek
66letters) in the middle of the series. The results for the pdf, cairo, and
67qt devices for this example are poor (e.g., do not agree with the good
68-dev xwin results), but it is planned to deal with those issues soon.
69