IA: Added image binning feature (similar to CCD binning).
[pyplotsuite.git] / README.html
blob961d1e7984c092bedae1849b78b03253cdc0e5f9
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 8.2.1" />
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.1em;
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 {
148 margin-right: 0%;
150 div.listingblock > div.content {
151 border: 1px solid silver;
152 background: #f4f4f4;
153 padding: 0.5em;
156 div.quoteblock > div.content {
157 padding-left: 2.0em;
160 div.attribution {
161 text-align: right;
163 div.verseblock + div.attribution {
164 text-align: left;
167 div.admonitionblock .icon {
168 vertical-align: top;
169 font-size: 1.1em;
170 font-weight: bold;
171 text-decoration: underline;
172 color: #527bbd;
173 padding-right: 0.5em;
175 div.admonitionblock td.content {
176 padding-left: 0.5em;
177 border-left: 2px solid silver;
180 div.exampleblock > div.content {
181 border-left: 2px solid silver;
182 padding: 0.5em;
185 div.verseblock div.content {
186 white-space: pre;
189 div.imageblock div.content { padding-left: 0; }
190 div.imageblock img { border: 1px solid silver; }
191 span.image img { border-style: none; }
193 dl {
194 margin-top: 0.8em;
195 margin-bottom: 0.8em;
197 dt {
198 margin-top: 0.5em;
199 margin-bottom: 0;
200 font-style: italic;
202 dd > *:first-child {
203 margin-top: 0;
206 ul, ol {
207 list-style-position: outside;
209 ol.olist2 {
210 list-style-type: lower-alpha;
213 div.tableblock > table {
214 border: 3px solid #527bbd;
216 thead {
217 font-family: sans-serif;
218 font-weight: bold;
220 tfoot {
221 font-weight: bold;
224 div.hlist {
225 margin-top: 0.8em;
226 margin-bottom: 0.8em;
228 div.hlist td {
229 padding-bottom: 5px;
231 td.hlist1 {
232 vertical-align: top;
233 font-style: italic;
234 padding-right: 0.8em;
236 td.hlist2 {
237 vertical-align: top;
240 @media print {
241 div#footer-badges { display: none; }
244 div#toctitle {
245 color: #527bbd;
246 font-family: sans-serif;
247 font-size: 1.1em;
248 font-weight: bold;
249 margin-top: 1.0em;
250 margin-bottom: 0.1em;
253 div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
254 margin-top: 0;
255 margin-bottom: 0;
257 div.toclevel2 {
258 margin-left: 2em;
259 font-size: 0.9em;
261 div.toclevel3 {
262 margin-left: 4em;
263 font-size: 0.9em;
265 div.toclevel4 {
266 margin-left: 6em;
267 font-size: 0.9em;
269 /* Workarounds for IE6's broken and incomplete CSS2. */
271 div.sidebar-content {
272 background: #ffffee;
273 border: 1px solid silver;
274 padding: 0.5em;
276 div.sidebar-title, div.image-title {
277 font-family: sans-serif;
278 font-weight: bold;
279 margin-top: 0.0em;
280 margin-bottom: 0.5em;
283 div.listingblock div.content {
284 border: 1px solid silver;
285 background: #f4f4f4;
286 padding: 0.5em;
289 div.quoteblock-content {
290 padding-left: 2.0em;
293 div.exampleblock-content {
294 border-left: 2px solid silver;
295 padding-left: 0.5em;
298 /* IE6 sets dynamically generated links as visited. */
299 div#toc a:visited { color: blue; }
300 </style>
301 <script type="text/javascript">
302 /*<![CDATA[*/
303 window.onload = function(){generateToc(2)}
304 /* Author: Mihai Bazon, September 2002
305 * http://students.infoiasi.ro/~mishoo
307 * Table Of Content generator
308 * Version: 0.4
310 * Feel free to use this script under the terms of the GNU General Public
311 * License, as long as you do not remove or alter this notice.
314 /* modified by Troy D. Hanson, September 2006. License: GPL */
315 /* modified by Stuart Rackham, October 2006. License: GPL */
317 function getText(el) {
318 var text = "";
319 for (var i = el.firstChild; i != null; i = i.nextSibling) {
320 if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
321 text += i.data;
322 else if (i.firstChild != null)
323 text += getText(i);
325 return text;
328 function TocEntry(el, text, toclevel) {
329 this.element = el;
330 this.text = text;
331 this.toclevel = toclevel;
334 function tocEntries(el, toclevels) {
335 var result = new Array;
336 var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');
337 // Function that scans the DOM tree for header elements (the DOM2
338 // nodeIterator API would be a better technique but not supported by all
339 // browsers).
340 var iterate = function (el) {
341 for (var i = el.firstChild; i != null; i = i.nextSibling) {
342 if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
343 var mo = re.exec(i.tagName)
344 if (mo)
345 result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
346 iterate(i);
350 iterate(el);
351 return result;
354 // This function does the work. toclevels = 1..4.
355 function generateToc(toclevels) {
356 var toc = document.getElementById("toc");
357 var entries = tocEntries(document.getElementsByTagName("body")[0], toclevels);
358 for (var i = 0; i < entries.length; ++i) {
359 var entry = entries[i];
360 if (entry.element.id == "")
361 entry.element.id = "toc" + i;
362 var a = document.createElement("a");
363 a.href = "#" + entry.element.id;
364 a.appendChild(document.createTextNode(entry.text));
365 var div = document.createElement("div");
366 div.appendChild(a);
367 div.className = "toclevel" + entry.toclevel;
368 toc.appendChild(div);
371 /*]]>*/
372 </script>
373 <title>PyPlotSuite README File</title>
374 </head>
375 <body>
376 <div id="header">
377 <h1>PyPlotSuite README File</h1>
378 <div id="toc">
379 <div id="toctitle">Table of Contents</div>
380 <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
381 </div>
382 </div>
383 <div id="preamble">
384 <div class="sectionbody">
385 <div class="sidebarblock">
386 <div class="sidebar-content">
387 <div class="sidebar-title">Copyright and License</div>
388 <p>Copyright &#169; 2006-2007 Antonino Ingargiola &lt;tritemio@gmail.com&gt;</p>
389 <p>This program is free software; you can redistribute it and/or modify
390 it under the terms of the GNU General Public License as published by
391 the Free Software Foundation; either version 2 of the License, or
392 (at your option) any later version.</p>
393 <p>This program is distributed in the hope that it will be useful,
394 but WITHOUT ANY WARRANTY; without even the implied warranty of
395 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
396 GNU General Public License for more details.</p>
397 <p>For more information read the file LICENSE.txt in the source directory.</p>
398 </div></div>
399 </div>
400 </div>
401 <h2>Project Description</h2>
402 <div class="sectionbody">
403 <p><strong>PyPlotSuite</strong> is a set of graphical tools to quick visualize and explore/analyze
404 monodimentional and bidimensional data. The plot created can be saved in a
405 variety of image formats to produce publication quality graphs.</p>
406 <p>At the moment the project is composed by two little stand alone applications:
407 <strong>ImageAnalyzer</strong> and <strong>Plotfile2</strong>. ImageAnalyzer is focused towards images (or any
408 2D data, such as arrays) visualization, analysis, and measurement. Plotfile2
409 focus is towards simple data series visualization, with the possibility to
410 quick modify many plot characteristics. Both applications can save the result
411 on a multitude of image file formats (png, eps, jpeg, pdf, and more).</p>
412 <p>PyPlotSuite is written in python, using the GTK gui toolkit (through the python
413 binding pygtk, and using Glade-2 to layout the windows). All plots are created
414 with the great Matplotlib python 2D graphic library. Matplotlib is such a good
415 tool that the PyPlotSuite applications are only tiny wrapper around Matplotlib
416 functionality. Also some Numpy functionality are used both through Matplotlib
417 (which requires Numpy) and both directly.</p>
418 <div class="hlist"><table>
419 <tr>
420 <td class="hlist1">
421 Home Page
422 </td>
423 <td class="hlist2">
424 <a href="http://pyplotsuite.sourceforge.net">http://pyplotsuite.sourceforge.net</a>
425 </td>
426 </tr>
427 <tr>
428 <td class="hlist1">
429 <strong>Latest Version</strong>
430 </td>
431 <td class="hlist2">
432 0.1-alpha8
433 </td>
434 </tr>
435 </table></div>
436 </div>
437 <h2>NEWS</h2>
438 <div class="sectionbody">
439 <h3>0.1-alpha8</h3>
440 <ul>
441 <li>
443 Added multiplatform installer using distutils. Now to install the pyplotsuite
444 system-wide just do "python setup.py install" form the source tree with
445 administrative privileges.
446 </p>
447 </li>
448 <li>
450 Various bug-fixes thanks to David Trémouilles' bug reports and patches (now
451 the open dialog remebers the last dir).
452 </p>
453 </li>
454 <li>
456 scipy.filters is now only optional to run ImageAnalyzer
457 </p>
458 </li>
459 <li>
461 ImageAnalyzer: Allow to change aspect ratio for images in ImageAnalyzer (via
462 the pixel dimesion dialog)
463 </p>
464 </li>
465 <li>
467 ImageAnalyzer: Zemax file format loading fixes and autodetection improvements.
468 </p>
469 </li>
470 </ul>
471 <h3>0.1-alpha7</h3>
472 <p>Only Plotfile2 changes in this release. Various speed-up and code optimization, and the support for changing also the color for all line-plot elements.</p>
473 <h3>0.1-alpha6</h3>
474 <p>This is the first version of PyPlotSuite released as a single tarball. It
475 includes both ImageAnalyzer and Plotfile2.</p>
476 <p>A new plot property dialog in Plotfile2 allows to change many plot parameters
477 (line style and width, marker style and size). There's also the GUI for
478 changing the colors of the various plot elements but this functions is not
479 implemented in the underlying code yet.</p>
480 </div>
481 <h2>Release Notice</h2>
482 <div class="sectionbody">
483 <p>Early versions of <strong>ImageAnalyzer</strong> and <strong>Plotfile2</strong> were released in separated
484 tarballs with separated version number. Now they are released together in the
485 same tarball with the same version number (and I plan to integrate them more).
486 However they retain separated changelogs, so you can keep track of each
487 application separately.</p>
488 </div>
489 <h2>Installation</h2>
490 <div class="sectionbody">
491 <p>You can decompress the archive where you want and then execute PyPloSuite in
492 place, entering the directory and typing:</p>
493 <div class="listingblock">
494 <div class="content">
495 <pre><tt> python imageanalyzer</tt></pre>
496 </div></div>
497 <p>or</p>
498 <div class="listingblock">
499 <div class="content">
500 <pre><tt> python plotfile2</tt></pre>
501 </div></div>
502 <p>You can install PyPlotSuite system wide with this command:</p>
503 <div class="listingblock">
504 <div class="content">
505 <pre><tt> python setup.py install</tt></pre>
506 </div></div>
507 </div>
508 <h2>Development Version</h2>
509 <div class="sectionbody">
510 <p>The development version of <strong>PyPlotSuite</strong> is hosted on a
511 <a href="http://repo.or.cz/w/pyplotsuite.git">git repository</a>. To download the latest
512 development version just install <a href="http://git.or.cz/">git</a>
513 and type:</p>
514 <div class="listingblock">
515 <div class="content">
516 <pre><tt> $ git clone git://repo.or.cz/pyplotsuite.git</tt></pre>
517 </div></div>
518 <p>Now you have a complete working tree of PyPlotSuite to test/hack on. If git
519 and cogito does not work on your OS (I think only windows is affected) look at
520 <a href="http://bazaar-vcs.org/">bazar</a> that is multiplatform SCM with a git plugin too.</p>
521 </div>
522 <h2>Requirements</h2>
523 <div class="sectionbody">
524 <p>You must have this software installed in order to be able to run the program:</p>
525 <ul>
526 <li>
528 Any recent version of Linux, Mac OSX or Windows
529 </p>
530 </li>
531 <li>
533 Python 2.4 or newer (2.3 may still work, not tested):
534 <a href="http://www.python.org">http://www.python.org</a>
535 </p>
536 </li>
537 <li>
539 PyGTK 2.x:
540 <a href="http://www.pygtk.org/">http://www.pygtk.org/</a>
541 </p>
542 </li>
543 <li>
545 NumPy (1.0 or newer)
546 <a href="http://numpy.scipy.org/">http://numpy.scipy.org/</a>
547 </p>
548 </li>
549 <li>
551 MatPlotLib (0.87 or newer):
552 <a href="http://matplotlib.sourceforge.net/">http://matplotlib.sourceforge.net/</a>
553 </p>
554 </li>
555 <li>
557 SciPy (only the module scipy.ndimage.filters):
558 <a href="http://www.scipy.org/">http://www.scipy.org/</a>
559 </p>
560 </li>
561 <li>
563 Python Image Library (PIL):
564 <a href="http://www.pythonware.com/products/pil/">http://www.pythonware.com/products/pil/</a>
565 </p>
566 </li>
567 </ul>
568 <div class="admonitionblock">
569 <table><tr>
570 <td class="icon">
571 <img src="./images/icons/note.png" alt="Note" />
572 </td>
573 <td class="content">Typically Numpy is a prerequisite for Matplotlib, so you may have
574 installed it in bundle with Matplotlib.</td>
575 </tr></table>
576 </div>
577 <div class="admonitionblock">
578 <table><tr>
579 <td class="icon">
580 <img src="./images/icons/note.png" alt="Note" />
581 </td>
582 <td class="content">The Scipy module and the PIL library are a requirement only if you want
583 to run ImageAnalyzer. Plotfile2 does not requires them.</td>
584 </tr></table>
585 </div>
586 </div>
587 <h2>Image Analyzer</h2>
588 <div class="sectionbody">
589 <div class="hlist"><table>
590 <tr>
591 <td class="hlist1">
592 Name
593 </td>
594 <td class="hlist2">
595 Image Analyzer
596 </td>
597 </tr>
598 <tr>
599 <td class="hlist1">
600 Description
601 </td>
602 <td class="hlist2">
603 A tool to extract and make measures on scientific images.
604 </td>
605 </tr>
606 </table></div>
607 <h3>Description</h3>
608 <p>ImageAnalyzer is a python[1] program written with the purpose to analyze
609 scientific images to extract information such dimensions, and to reveal some
610 subtle features. You can also create and save publication quality figures in a
611 variety of hard-copy formats (using Matplotlib[5]).</p>
612 <p>To execute the program type:</p>
613 <div class="listingblock">
614 <div class="content">
615 <pre><tt> python imageanalyzer</tt></pre>
616 </div></div>
617 <p>Remeber to check the software requirement above.</p>
618 <h3>Image formats supported</h3>
619 <p>All format supported by the PIL[6] library, with the following pixel formats:
620 - L (Luminance, aka black&amp;white) 8 bit and 14 bit
621 - RBG(A) with 8bit per channel</p>
622 <h3>Features</h3>
623 <p>The features currently implemented are:</p>
624 <ul>
625 <li>
627 Load, zoom and navigate on any RBG(A) or L (Luminance, aka black&amp;white)
628 images.
629 </p>
630 </li>
631 <li>
633 The possibility to choose one of the following 17 interpolation
634 algorithms:
635 Bessel, Bicubic, Bilinear, Blackman, Catrom, Gaussian, Hamming,
636 Hanning, Hermite, Kaiser, Lanczos, Mitchell, Nearest, Quadric, Sinc,
637 Spline16, Spline36.
638 The default one is Nearest which is "no interpolation".
639 </p>
640 </li>
641 <li>
643 Select one of the 14 color-maps (only for L images).
644 </p>
645 </li>
646 <li>
648 Select a dynamic range either numerically and graphically through an
649 histogram of the image (only for L images).
650 </p>
651 </li>
652 <li>
654 Grid on/off, black/white (to match various color-maps).
655 </p>
656 </li>
657 <li>
659 Calculate the distance between two points with the option to set the pixel
660 dimension for the image (x and y separately).
661 </p>
662 </li>
663 <li>
665 Plot the pixel-precise profile of an arbitrary number of sections of the
666 image (only for L images).
667 </p>
668 </li>
669 </ul>
670 <h3>ImageAnalyzer TODO</h3>
671 <p>To-do list in no particular order:</p>
672 <ul>
673 <li>
675 Allow to save modified images.
676 </p>
677 </li>
678 <li>
680 Allow to save/load plot properties (colormap, interpolation, zoom).
681 Handle this as explained in Plotfile2 TODO (below).
682 </p>
683 </li>
684 <li>
686 Allow to choose font size for title and labels (separately).
687 </p>
688 </li>
689 <li>
691 Fix axis apect ratio in histogram window.
692 </p>
693 </li>
694 <li>
696 Better handling of failure on file load.
697 </p>
698 </li>
699 <li>
701 Use Plotfile2 (instead of the current custom window) to show image
702 sections.
703 </p>
704 </li>
705 <li>
707 More image filtering options.
708 </p>
709 </li>
710 <li>
712 Add pixel-value picker tool.
713 </p>
714 </li>
715 <li>
717 Peak integration tool (2d integration on an elliptical area).
718 </p>
719 </li>
720 <li>
722 Noise removal tools (dithering, noise shaping, 2D matched filter, you
723 name it! :D)
724 </p>
725 </li>
726 </ul>
727 </div>
728 <h2>Plotfile2</h2>
729 <div class="sectionbody">
730 <div class="hlist"><table>
731 <tr>
732 <td class="hlist1">
733 Name
734 </td>
735 <td class="hlist2">
736 Plotfile2
737 </td>
738 </tr>
739 <tr>
740 <td class="hlist1">
741 Description
742 </td>
743 <td class="hlist2">
744 A tool plot 1D data series.
745 </td>
746 </tr>
747 </table></div>
748 <h3>Description</h3>
749 <p>Plotfile2 is is a python[1] program written with the purpose to quick plot data
750 series stored in standard ascii text files. Multiple data series can be plotted,
751 compared and the resulting plot can be saved in a variety of image file formats
752 with a customizable size and resolution. This feature come particularly handy
753 if you want to embed your plot in a document and you what size the final image
754 will have.</p>
755 <p>Plotfile2 is written using the GTK toolkit[2] and embeds Matplotlib[5] plot
756 facility.</p>
757 <p>To execute the program, enter the Plotfile2 dir and type:</p>
758 <div class="listingblock">
759 <div class="content">
760 <pre><tt> python plotfile2</tt></pre>
761 </div></div>
762 <p>See also the software requirements above.</p>
763 <h3>Features</h3>
764 <p>At the moment Plotfile2 can:</p>
765 <ul>
766 <li>
768 Load one or more data series from a two column (spaces or tab separated)
769 ascii file. Blank lines (only spaces or tabs) are ignored.
770 </p>
771 </li>
772 <li>
774 Detect if there is an header to automatically set axis labels. The header
775 must be one line with two strings separated by spacing (or tabs). Blank
776 lines before and after the header are ignored. More than two
777 space-separated string results in an error.
778 </p>
779 </li>
780 <li>
782 Controls to change the X and Y axis range, scale (linear or
783 log) and toggle grid.
784 </p>
785 </li>
786 <li>
788 Controls to toggle if plot shows points (markers), lines or both.
789 </p>
790 </li>
791 <li>
793 Complete customization of plot elements through a dedicated dialog
794 (line style, marker type, colors, etc&#8230;).
795 </p>
796 </li>
797 <li>
799 Set the plot title and axis labels
800 </p>
801 </li>
802 <li>
804 Set the figure size (both in inches or in cm) and resolution (in dpi).
805 This is useful to export a plot to be included in a document with a know
806 size.
807 </p>
808 </li>
809 <li>
811 Navigate/explore plots (zoom, un-zoom, pan, etc) thanks to the Matplotlib
812 NavigationToolbar2 (try to click on the crossed arrows icon and then
813 click and dragg with the right mouse button).
814 </p>
815 </li>
816 <li>
818 Save the plot in a multitude of image formats (png, jpeg, eps, pdf, &#8230;
819 all the formats supported by Matplotlib). Just click on the floppy icon.
820 </p>
821 </li>
822 </ul>
823 <h3>Plotfile2 TODO</h3>
824 <ul>
825 <li>
827 Possibility to customize plot line style, line color, line width, marker
828 color, marker size, marker type for each series. <strong>[COMPLETED]</strong>
829 </p>
830 </li>
831 <li>
833 Possibility to use spline interpolation (with various orders), and
834 exponential-spline interpolation <em>[Work in progress]</em>.
835 </p>
836 </li>
837 <li>
839 Add dialogs to choose an arbitrary color for plot elements in
840 the "Plot Properties" dialog.
841 </p>
842 </li>
843 <li>
845 Allow font size (and if possible) font style change for labels and title.
846 </p>
847 </li>
848 <li>
850 Save plots as data (two columns ascii file or csv). This is useful for
851 new data generated by the interpolation.
852 </p>
853 </li>
854 <li>
856 Allow to save and load plot properties associated with a set of data. This
857 would allow to load a dataset with associated plot style. To maintain the
858 data in a compatible format this metadata will be saved in a new file with
859 same name but different extension (f.e. ".plot"). Maybe the file should
860 be hidden&#8230; (in the same dir of the data of course).
861 </p>
862 </li>
863 <li>
865 Add basic operators (spectrum, intergrate, differentiate: which make sense?).
866 </p>
867 </li>
868 <li>
870 Embed an (optional) [i]python shell.
871 </p>
872 </li>
873 </ul>
874 <h3>Plotfile2 Known Problems</h3>
875 <ul>
876 <li>
878 When you change figure size and resolution using the dedicated dialog, the
879 main window may show a scrambled plot (or only an corner of the entire plot).
880 This is only a visualization issue. Therefore, if you save the file (without
881 resizing the window!) you will obtain the image file with the correct size
882 and resolution ready to be included in your documents.
883 </p>
884 </li>
885 </ul>
886 <div class="admonitionblock">
887 <table><tr>
888 <td class="icon">
889 <img src="./images/icons/note.png" alt="Note" />
890 </td>
891 <td class="content">If you have any suggestion to solve this problem please contact
892 <a href="mailto:tritemio@gmail.com">me</a> via mail.</td>
893 </tr></table>
894 </div>
895 </div>
896 <h2>Links</h2>
897 <div class="sectionbody">
898 <ol>
899 <li>
901 <strong>Python</strong>: a dynamic object-oriented programming language.
902 </p>
903 <ul>
904 <li>
906 <a href="http://www.python.org">http://www.python.org</a>
907 </p>
908 </li>
909 </ul>
910 </li>
911 <li>
913 <strong>PyGTK</strong>: Python binding for the GTK user interface library.
914 </p>
915 <ul>
916 <li>
918 <a href="http://www.pygtk.org/">http://www.pygtk.org/</a>
919 </p>
920 </li>
921 </ul>
922 </li>
923 <li>
925 <strong>Numpy</strong>: The fundamental package needed for numerical computing with Python.
926 It is the successor (and unifier) of all the old projects (Numeric and
927 Numarray) for python numerical computing.
928 </p>
929 <ul>
930 <li>
932 <a href="http://numpy.scipy.org/">http://numpy.scipy.org/</a>
933 </p>
934 </li>
935 </ul>
936 </li>
937 <li>
939 <strong>SciPy</strong>: Many modules that were not specific to Numpy are gathered under the
940 broader project SciPy:
941 </p>
942 <ul>
943 <li>
945 <a href="http://numpy.scipy.org/">http://numpy.scipy.org/</a>
946 </p>
947 </li>
948 </ul>
949 </li>
950 <li>
952 <strong>MatPlotLib</strong>: A python 2D plotting library which produces publication quality
953 figures in a variety of hard-copy formats and interactive environments
954 across platforms.
955 </p>
956 <ul>
957 <li>
959 <a href="http://matplotlib.sourceforge.net/">http://matplotlib.sourceforge.net/</a>
960 </p>
961 </li>
962 </ul>
963 </li>
964 <li>
966 <strong>Python Imaging Library</strong> (PIL).
967 </p>
968 <ul>
969 <li>
971 <a href="http://www.pythonware.com/products/pil/">http://www.pythonware.com/products/pil/</a>
972 </p>
973 </li>
974 </ul>
975 </li>
976 </ol>
977 <div class="sidebarblock">
978 <div class="sidebar-content">
979 <p>The html version of this README was generated from the ASCII file with:</p>
980 <div class="listingblock">
981 <div class="content">
982 <pre><tt>$ asciidoc -a toc -a icons -a badges README.txt</tt></pre>
983 </div></div>
984 </div></div>
985 </div>
986 <div id="footer">
987 <div id="footer-text">
988 Last updated 28-Jul-2007 16:43:22 CEST
989 </div>
990 <div id="footer-badges">
991 <a href="http://validator.w3.org/check?uri=referer">
992 <img style="border:none; width:88px; height:31px;"
993 src="http://www.w3.org/Icons/valid-xhtml11"
994 alt="Valid XHTML 1.1!" />
995 </a>
996 <a href="http://jigsaw.w3.org/css-validator/check/referer">
997 <img style="border:none; width:88px; height:31px;"
998 src="http://jigsaw.w3.org/css-validator/images/vcss"
999 alt="Valid CSS!" />
1000 </a>
1001 <a href="http://www.mozilla.org/products/firefox/">
1002 <img style="border:none; width:110px; height:32px;"
1003 src="http://www.spreadfirefox.com/community/images/affiliates/Buttons/110x32/safer.gif"
1004 alt="Get Firefox!" />
1005 </a>
1006 </div>
1007 </div>
1008 </body>
1009 </html>