Populate the list view in the plot-property dialog.
[pyplotsuite.git] / README.html
bloba371a23ac1b97710fafb25958dbff0001e5c0a66
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6 <meta name="generator" content="AsciiDoc 7.1.2" />
7 <style type="text/css">
8 /* Debug borders */
9 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
11 border: 1px solid red;
15 body {
16 margin: 1em 5% 1em 5%;
19 a {
20 color: blue;
21 text-decoration: underline;
23 a:visited {
24 color: fuchsia;
27 em {
28 font-style: italic;
31 strong {
32 font-weight: bold;
35 tt {
36 color: navy;
39 h1, h2, h3, h4, h5, h6 {
40 color: #527bbd;
41 font-family: sans-serif;
42 margin-top: 1.2em;
43 margin-bottom: 0.5em;
44 line-height: 1.3;
47 h1 {
48 border-bottom: 2px solid silver;
50 h2 {
51 border-bottom: 2px solid silver;
52 padding-top: 0.5em;
55 div.sectionbody {
56 font-family: serif;
57 margin-left: 0;
60 hr {
61 border: 1px solid silver;
64 p {
65 margin-top: 0.5em;
66 margin-bottom: 0.5em;
69 pre {
70 padding: 0;
71 margin: 0;
74 span#author {
75 color: #527bbd;
76 font-family: sans-serif;
77 font-weight: bold;
78 font-size: 1.2em;
80 span#email {
82 span#revision {
83 font-family: sans-serif;
86 div#footer {
87 font-family: sans-serif;
88 font-size: small;
89 border-top: 2px solid silver;
90 padding-top: 0.5em;
91 margin-top: 4.0em;
93 div#footer-text {
94 float: left;
95 padding-bottom: 0.5em;
97 div#footer-badges {
98 float: right;
99 padding-bottom: 0.5em;
102 div#preamble,
103 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
104 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
105 div.admonitionblock {
106 margin-right: 10%;
107 margin-top: 1.5em;
108 margin-bottom: 1.5em;
110 div.admonitionblock {
111 margin-top: 2.5em;
112 margin-bottom: 2.5em;
115 div.content { /* Block element content. */
116 padding: 0;
119 /* Block element titles. */
120 div.title, caption.title {
121 font-family: sans-serif;
122 font-weight: bold;
123 text-align: left;
124 margin-top: 1.0em;
125 margin-bottom: 0.5em;
127 div.title + * {
128 margin-top: 0;
131 td div.title:first-child {
132 margin-top: 0.0em;
134 div.content div.title:first-child {
135 margin-top: 0.0em;
137 div.content + div.title {
138 margin-top: 0.0em;
141 div.sidebarblock > div.content {
142 background: #ffffee;
143 border: 1px solid silver;
144 padding: 0.5em;
147 div.listingblock > div.content {
148 border: 1px solid silver;
149 background: #f4f4f4;
150 padding: 0.5em;
153 div.quoteblock > div.content {
154 padding-left: 2.0em;
157 div.attribution {
158 text-align: right;
160 div.verseblock + div.attribution {
161 text-align: left;
164 div.admonitionblock .icon {
165 vertical-align: top;
166 font-size: 1.1em;
167 font-weight: bold;
168 text-decoration: underline;
169 color: #527bbd;
170 padding-right: 0.5em;
172 div.admonitionblock td.content {
173 padding-left: 0.5em;
174 border-left: 2px solid silver;
177 div.exampleblock > div.content {
178 border-left: 2px solid silver;
179 padding: 0.5em;
182 div.verseblock div.content {
183 white-space: pre;
186 div.imageblock div.content { padding-left: 0; }
187 div.imageblock img { border: 1px solid silver; }
188 span.image img { border-style: none; }
190 dl {
191 margin-top: 0.8em;
192 margin-bottom: 0.8em;
194 dt {
195 margin-top: 0.5em;
196 margin-bottom: 0;
197 font-style: italic;
199 dd > *:first-child {
200 margin-top: 0;
203 ul, ol {
204 list-style-position: outside;
206 ol.olist2 {
207 list-style-type: lower-alpha;
210 div.tableblock > table {
211 border: 3px solid #527bbd;
213 thead {
214 font-family: sans-serif;
215 font-weight: bold;
217 tfoot {
218 font-weight: bold;
221 div.hlist {
222 margin-top: 0.8em;
223 margin-bottom: 0.8em;
225 td.hlist1 {
226 vertical-align: top;
227 font-style: italic;
228 padding-right: 0.8em;
230 td.hlist2 {
231 vertical-align: top;
234 @media print {
235 div#footer-badges { display: none; }
237 /* Workarounds for IE6's broken and incomplete CSS2. */
239 div.sidebar-content {
240 background: #ffffee;
241 border: 1px solid silver;
242 padding: 0.5em;
244 div.sidebar-title, div.image-title {
245 font-family: sans-serif;
246 font-weight: bold;
247 margin-top: 0.0em;
248 margin-bottom: 0.5em;
251 div.listingblock div.content {
252 border: 1px solid silver;
253 background: #f4f4f4;
254 padding: 0.5em;
257 div.quoteblock-content {
258 padding-left: 2.0em;
261 div.exampleblock-content {
262 border-left: 2px solid silver;
263 padding-left: 0.5em;
265 </style>
266 <title>PyPlotSuite README File</title>
267 </head>
268 <body>
269 <div id="header">
270 <h1>PyPlotSuite README File</h1>
271 </div>
272 <div id="preamble">
273 <div class="sectionbody">
274 <div class="sidebarblock">
275 <div class="sidebar-content">
276 <div class="sidebar-title">Copyright and License</div>
277 <p>Copyright &#169; 2006-2007 Antonino Ingargiola &lt;tritemio@gmail.com&gt;</p>
278 <p>This program is free software; you can redistribute it and/or modify
279 it under the terms of the GNU General Public License as published by
280 the Free Software Foundation; either version 2 of the License, or
281 (at your option) any later version.</p>
282 <p>This program is distributed in the hope that it will be useful,
283 but WITHOUT ANY WARRANTY; without even the implied warranty of
284 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
285 GNU General Public License for more details.</p>
286 <p>For more information read the file LICENSE.txt in the source directory.</p>
287 </div></div>
288 </div>
289 </div>
290 <h2>Project Description</h2>
291 <div class="sectionbody">
292 <p><strong>PyPlotSuite</strong> is a set of graphical tools to quick visualize and explore/analyze
293 monodimentional and bidimensional data. The plot produced can be saved in a
294 variety of image formats to produce publication quality graphs.</p>
295 <p>At the moment the project is composed by two little stand alone applications:
296 <strong>ImageAnalyzer</strong> and <strong>Plotfile2</strong>. ImageAnalyzer is focused towards images (or any
297 2D data, such as arrays) visualization, analysis, and measurement. Plotfile2
298 focus is towards simple data series visualization, with the possibility to
299 quick modify many plot characteristics. Both applications can save the result
300 on a multitude of image file formats (png, eps, jpeg, pdf, and more).</p>
301 <p>PyPlotSuite is written in python, using the GTK gui toolkit (through the python
302 binding pygtk, and using Glade-2 to layout the windows). All plots are created
303 with the great Matplotlib python 2D graphic library. Matplotlib is such a good
304 tool that the PyPlotSuite applications are only tiny wrapper around Matplotlib
305 functionality. Also some Numpy functionality are used both through Matplotlib
306 (which requires Numpy) and both directly.</p>
307 <div class="hlist"><table>
308 <tr>
309 <td class="hlist1">
310 Home Page
311 </td>
312 <td class="hlist2">
313 <a href="http://pyplotsuite.sourceforge.net">http://pyplotsuite.sourceforge.net</a>
314 </td>
315 </tr>
316 <tr>
317 <td class="hlist1">
318 <strong>Latest Version</strong>
319 </td>
320 <td class="hlist2">
321 0.1-alpha6 <em>(still unreleased!)</em>
322 </td>
323 </tr>
324 </table></div>
325 </div>
326 <h2>Release Notice</h2>
327 <div class="sectionbody">
328 <p>Early versions of <strong>ImageAnalyzer</strong> and <strong>Plotfile2</strong> were released in separated
329 tarballs with separated version number. Now they are released together in the
330 same tarball with the same version number (and I plan to integrate them more).
331 However they retain separated changelogs, so you can keep track of each
332 application separately.</p>
333 <p>The development version of <strong>PyPlotSuite</strong> is hosted on a
334 <a href="http://repo.or.cz/w/pyplotsuite.git">git repository</a>. To download the latest
335 (possibly broken) development version just install <a href="http://git.or.cz/">git</a>
336 and type:</p>
337 <div class="listingblock">
338 <div class="content">
339 <pre><tt>$ git clone ssh://repo.or.cz/srv/git/pyplotsuite.git</tt></pre>
340 </div></div>
341 <p>Now you have a complete working version of PyPlotSuite to test/hack on. If git
342 and cogito does not work on your OS (i.e. windows) look at
343 <a href="http://bazaar-vcs.org/">bazar</a> that is multiplatform SCM with a git plugin too.</p>
344 </div>
345 <h2>Requirements</h2>
346 <div class="sectionbody">
347 <p>You must have this software installed in order to be able to run the program:</p>
348 <ul>
349 <li>
351 Any recent version of Linux, Mac OSX or Windows
352 </p>
353 </li>
354 <li>
356 Python 2.4 or newer (2.3 may still work, not tested):
357 <a href="http://www.python.org">http://www.python.org</a>
358 </p>
359 </li>
360 <li>
362 PyGTK 2.x:
363 <a href="http://www.pygtk.org/">http://www.pygtk.org/</a>
364 </p>
365 </li>
366 <li>
368 NumPy (1.0 or newer)
369 <a href="http://numpy.scipy.org/">http://numpy.scipy.org/</a>
370 </p>
371 </li>
372 <li>
374 MatPlotLib (tested on 0.87):
375 <a href="http://matplotlib.sourceforge.net/">http://matplotlib.sourceforge.net/</a>
376 </p>
377 </li>
378 <li>
380 SciPy (only the module scipy.ndimage.filters):
381 <a href="http://www.scipy.org/">http://www.scipy.org/</a>
382 </p>
383 </li>
384 <li>
386 Python Image Library (PIL):
387 <a href="http://www.pythonware.com/products/pil/">http://www.pythonware.com/products/pil/</a>
388 </p>
389 </li>
390 </ul>
391 <div class="admonitionblock">
392 <table><tr>
393 <td class="icon">
394 <img src="./images/icons/note.png" alt="Note" />
395 </td>
396 <td class="content">Typically Numpy is a prerequisite for Matplotlib, so you may have
397 installed it in bundle with Matplotlib.</td>
398 </tr></table>
399 </div>
400 <div class="admonitionblock">
401 <table><tr>
402 <td class="icon">
403 <img src="./images/icons/note.png" alt="Note" />
404 </td>
405 <td class="content">The Scipy module and the PIL library are a requirement only if you want
406 to run ImageAnalyzer. Plotfile2 does not requires them.</td>
407 </tr></table>
408 </div>
409 </div>
410 <h2>Image Analyzer</h2>
411 <div class="sectionbody">
412 <div class="hlist"><table>
413 <tr>
414 <td class="hlist1">
415 Name
416 </td>
417 <td class="hlist2">
418 Image Analyzer
419 </td>
420 </tr>
421 <tr>
422 <td class="hlist1">
423 Description
424 </td>
425 <td class="hlist2">
426 A tool to extract and make measures on scientific images.
427 </td>
428 </tr>
429 </table></div>
430 <h3>Description</h3>
431 <p>Image Analyzer is a python[0] program written with the purpose to analyze
432 scientific images to extract information such dimensions, and to reveal some
433 subtle features. You can also create and save publication quality figures in a
434 variety of hard-copy formats (using Matplotlib[3]).</p>
435 <p>To execute the program run the file imageanalyzer or imageanalyzer.py. See the
436 software requirement.</p>
437 <h3>Image formats supported</h3>
438 <p>All format supported by the PIL[4] library, with the following format:
439 - L (Luminance, aka black&amp;white) 8 bit and 14 bit
440 - RBG(A) with 8bit per channel</p>
441 <h3>Features</h3>
442 <p>The features currently implemented are:</p>
443 <ul>
444 <li>
446 Load, zoom and navigate on any RBG(A) or L (Luminance, aka black&amp;white)
447 images.
448 </p>
449 </li>
450 <li>
452 The possibility to choose one of the following 17 interpolation algorithms:
453 Bessel, Bicubic, Bilinear, Blackman, Catrom, Gaussian, Hamming,
454 Hanning, Hermite, Kaiser, Lanczos, Mitchell, Nearest, Quadric, Sinc,
455 Spline16, Spline36.
456 The default one is Nearest which is, in a way, "absence of interpolation".
457 </p>
458 </li>
459 <li>
461 Select one of the 14 color-maps (only for L images)
462 </p>
463 </li>
464 <li>
466 Select a dynamic range either numerically and graphically through an
467 histogram of the image (only for L images).
468 </p>
469 </li>
470 <li>
472 Grid on/off, black/white (to match various color-maps).
473 </p>
474 </li>
475 <li>
477 Calculate the distance between two points with the option to set the pixel
478 dimension for the image (x and y separately).
479 </p>
480 </li>
481 <li>
483 Plot the pixel-precise profile of an arbitrary number of sections of the
484 image (only for L images).
485 </p>
486 </li>
487 </ul>
488 </div>
489 <h2>Plotfile2</h2>
490 <div class="sectionbody">
491 <div class="hlist"><table>
492 <tr>
493 <td class="hlist1">
494 Name
495 </td>
496 <td class="hlist2">
497 Plotfile2
498 </td>
499 </tr>
500 <tr>
501 <td class="hlist1">
502 Description
503 </td>
504 <td class="hlist2">
505 A tool plot 1D data series.
506 </td>
507 </tr>
508 </table></div>
509 <h3>Description</h3>
510 <p>Plotfile2 is is a python[0] program written with the purpose to quick plot data
511 series stored in standard ascii text files. Multiple data series can be plotted,
512 compared and the resulting plot can be saved in a variety of image file formats
513 with a customizable size and resolution. This feature come particularly handy
514 if you want to embed your plot in a document and you what size the final image
515 will have.</p>
516 <p>Plotfile2 is written using the GTK toolkit[1] and embeds Matplotlib[2] plot
517 facility.</p>
518 <p>To execute the program, enter the Plotfile2 dir and type "python plotfile2.py".</p>
519 <p>See also the software requirements above.</p>
520 <h3>Features</h3>
521 <p>At the moment Plotfile2 can:</p>
522 <ul>
523 <li>
525 Load one or more data series from a two column (space separated) ascii
526 text file.
527 </p>
528 </li>
529 <li>
531 Change the X and Y axis range
532 </p>
533 </li>
534 <li>
536 Change the X and Y scale (linear or log)
537 </p>
538 </li>
539 <li>
541 Toggle the grid
542 </p>
543 </li>
544 <li>
546 Customize the plot showing points, lines or both (more advanced
547 customization is in development)
548 </p>
549 </li>
550 <li>
552 Set the plot title and axis labels
553 </p>
554 </li>
555 <li>
557 Set the figure size (both in inches or in cm) and resolution (in dpi).
558 This is useful to export a plot to be included in a document with a know
559 size.
560 </p>
561 </li>
562 <li>
564 Zoom, un-zoom and pan the plot.
565 </p>
566 </li>
567 <li>
569 Save the plot in a multitude of image formats (png, jpeg, eps, pdf, &#8230;
570 all Matplotlib supported formats)
571 </p>
572 </li>
573 </ul>
574 <h3>Plotfile2 Roadmap</h3>
575 <ul>
576 <li>
578 Possibility to customize plot line style, line color, line width, marker
579 color, marker size, marker type for each series.
580 </p>
581 </li>
582 <li>
584 Possibility to use spline interpolation (with various orders), and
585 exponential-spline interpolation.
586 </p>
587 </li>
588 </ul>
589 <h3>Plotfile2 Known Problems</h3>
590 <ul>
591 <li>
593 When you change figure size and resolution through the proper dialog, the
594 main window may show a scrambled plot (or only an corner of the entire plot).
595 This is only a visualization issue. Therefore, if you save the file (without
596 resizing the window!) you will obtain the image file with the correct size
597 and resolution ready to be included in your documents.
598 </p>
599 </li>
600 </ul>
601 <div class="admonitionblock">
602 <table><tr>
603 <td class="icon">
604 <img src="./images/icons/note.png" alt="Note" />
605 </td>
606 <td class="content">If you have any suggestion to solve this problem please contact mailto:
607 tritemio@gmail.com[me] via mail.</td>
608 </tr></table>
609 </div>
610 </div>
611 <h2>Links</h2>
612 <div class="sectionbody">
613 <ol>
614 <li>
616 <strong>Python</strong>: a dynamic object-oriented programming language.
617 </p>
618 <ul>
619 <li>
621 <a href="http://www.python.org">http://www.python.org</a>
622 </p>
623 </li>
624 </ul>
625 </li>
626 <li>
628 <strong>Numpy</strong>: The fundamental package needed for numerical computing with Python.
629 It is the successor (and unifier) of all the old projects (Numeric and
630 Numarray) for python numerical computing.
631 </p>
632 <ul>
633 <li>
635 <a href="http://numpy.scipy.org/">http://numpy.scipy.org/</a>
636 </p>
637 </li>
638 </ul>
639 </li>
640 <li>
642 <strong>SciPy</strong>: Many modules that were not specific to Numpy are gathered under the
643 broader project SciPy:
644 </p>
645 <ul>
646 <li>
648 <a href="http://numpy.scipy.org/">http://numpy.scipy.org/</a>
649 </p>
650 </li>
651 </ul>
652 </li>
653 <li>
655 <strong>MatPlotLib</strong>: A python 2D plotting library which produces publication quality
656 figures in a variety of hard-copy formats and interactive environments
657 across platforms.
658 </p>
659 <ul>
660 <li>
662 <a href="http://matplotlib.sourceforge.net/">http://matplotlib.sourceforge.net/</a>
663 </p>
664 </li>
665 </ul>
666 </li>
667 <li>
669 <strong>Python Imaging Library</strong> (PIL).
670 </p>
671 <ul>
672 <li>
674 <a href="http://www.pythonware.com/products/pil/">http://www.pythonware.com/products/pil/</a>
675 </p>
676 </li>
677 </ul>
678 </li>
679 </ol>
680 <div class="sidebarblock">
681 <div class="sidebar-content">
682 <p>The html version of this README was generated from the ASCII file with:</p>
683 <div class="listingblock">
684 <div class="content">
685 <pre><tt>$ asciidoc -a icons -a badges README</tt></pre>
686 </div></div>
687 </div></div>
688 </div>
689 <div id="footer">
690 <div id="footer-text">
691 Last updated 08-Jun-2007 19:03:51 CEST
692 </div>
693 <div id="footer-badges">
694 <a href="http://validator.w3.org/check?uri=referer">
695 <img style="border:none; width:88px; height:31px;"
696 src="http://www.w3.org/Icons/valid-xhtml11"
697 alt="Valid XHTML 1.1!" />
698 </a>
699 <a href="http://jigsaw.w3.org/css-validator/check/referer">
700 <img style="border:none; width:88px; height:31px;"
701 src="http://jigsaw.w3.org/css-validator/images/vcss"
702 alt="Valid CSS!" />
703 </a>
704 <a href="http://www.mozilla.org/products/firefox/">
705 <img style="border:none; width:110px; height:32px;"
706 src="http://www.spreadfirefox.com/community/images/affiliates/Buttons/110x32/safer.gif"
707 alt="Get Firefox!" />
708 </a>
709 </div>
710 </div>
711 </body>
712 </html>