[BACK]Return to 0BUGS CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gnuplot

Annotation of OpenXM_contrib/gnuplot/0BUGS, Revision 1.1.1.1

1.1       maekawa     1:
                      2:  1. The hidden line algorithm is not perfect.  We have put in an option
                      3:     to draw both sides of the surface in the same linetype, thus avoiding
                      4:     this problem completely.  We should put in an option of not drawing
                      5:     the back at all.
                      6:
                      7:  2. In the Atari version, windows are not currently supported.  This
                      8:     means gnuplot 3.4 will not run with MultiAES.  We hope to correct
                      9:     this shortly in gpcontrb.tar.z.
                     10:     [Status of this bug: unknown]
                     11:
                     12:  3. autoscale writeback is probably broken.  One problem is that
                     13:     the range is written back before the range is extented to a
                     14:     whole number of tics. eg  if data is 0.9->10.1, that is what
                     15:     gets written back, but the plot is 0 -> 11.  If autoscale
                     16:     is switched off, you do get 0.9->10.1 since switching off
                     17:     autoscale switches off the extend-to-tic-multiple stuff.
                     18:
                     19:     Also, writeback with log scales writes back the log of the min/max
                     20:     [Status: unknown]
                     21:
                     22:  4. m[]tics bug when plotting time data
                     23:     There is an initialization problem when plotting time data with an
                     24:     interval calculation; an inordinate number of m[]tics are automatically
                     25:     drawn, e.g.,
                     26:
                     27:       set xdata time; set ydata time
                     28:       set timefmt "%d/%m"
                     29:       set format x "%b %d"
                     30:       set xrange ["01/12":"06/12"]
                     31:       set xtics "01/12", 172800, "05/12"
                     32:       plot x
                     33:
                     34:     The problem can be avoided by initializing via a plot before the
                     35:     interval calculation:
                     36:       [...]
                     37:       set xrange ["01/12":"06/12"]
                     38:       plot x
                     39:       set xtics "01/12", 172800, "05/12"
                     40:       plot x
                     41:
                     42:  5. "\n" does not work in the format for the tics in splot
                     43:
                     44:  6. Error bars don't work in polar plots
                     45:
                     46:  7. arrows and labels are not clipped (2D and 3D)
                     47:
                     48:  8. contour line clipping of 3D data plots
                     49:     The following tips for plotting contours were kindly supplied by Don Taber
                     50:     <dtaber@blackrat.risc.rockwell.com> and Paul Halsema <phalsema@harris.com>.
                     51:
                     52:     Splotting gives little control over the appearance of contour lines.
                     53:     You can do a better job by extracting the contours with the table
                     54:     terminal and then plotting the resulting file.  You should 'set
                     55:     nosurface' to eliminate the surface isolines from the file generated
                     56:     by the table terminal.
                     57:
                     58:     All the contours will be written to a single file.  To plot them with
                     59:     different line styles, you can use one of several approaches.  The
                     60:     simplest is to use the 'index' feature.  This has the advantage of
                     61:     using only gnuplot internals.  Other approaches use a utility
                     62:     such as sed, awk, or perl to either break up the file or generate
                     63:     a more sophisticated command file for plotting it.
                     64:
                     65:     The following gnuplot script extracts circular contours from a
                     66:     paraboloid of revolution and plots the resulting file. It then
                     67:     uses 'index' to provide different linestyles.  Finally, it runs
                     68:     an awk script to generate a command file for plotting the file.
                     69:
                     70:        set cntrparam levels discrete 20, 40, 60
                     71:        set contour base
                     72:        set nosurface
                     73:        splot x**2 + y**2
                     74:        set term table
                     75:        set output 'circles'
                     76:        replot
                     77:        set term linux  # or whatever your original term was
                     78:        set output
                     79:
                     80:        plot 'circles'   # all one linestyle
                     81:
                     82:        plot 'circles' index 0 t '20', 'circles' index 1 t '40', 'circles' index 2 t '60'  # different linestyles
                     83:
                     84:        !awk -f contr.awk circles > circles.gnu
                     85:        load 'circles.gnu'
                     86:
                     87:     Where the gawk script (contr.awk) contains the following:
                     88:
                     89: #!/usr/bin/nawk -f
                     90: #          ^---Replace with your favorite variant
                     91: # courtesy of Paul Halsema (phalsema@harris.com)
                     92: # and Emmanuel Bigler <bigler@jsbach.univ-fcomte.fr>
                     93: #
                     94: # This script operates on a file generated by a gnuplot splot command with
                     95: # a table terminal type.  The output should be redirected to another file
                     96: # which can then be loaded into gnuplot.  This results in a contour plot
                     97: # that is more appealing for presentation purposes.  Providing the optional
                     98: # parameter n will put a label on the contour at every nth point.
                     99: #
                    100: # Sample usage (in gnuplot):
                    101: # !nawk -f contr.awk -v n=12 circles > circles.gnu
                    102: # load 'circles.gnu'
                    103: #
                    104: # If you make this script executable and place it somewhere in your path,
                    105: # then it can be called directly as in:
                    106: #
                    107: # !nawk -f contr.awk -v n=12 circles > circles.gnu
                    108: # load 'circles.gnu'
                    109:
                    110: BEGIN {
                    111:   fmt1="%s \\\n     index %d title '%s'";
                    112:   fmt2="%s, \\\n  '' index %d title '%s'";
                    113: # Add any gnuplot commands that you always want performed here
                    114:   print "set key out";
                    115:   print "set key title '" FILENAME "'";
                    116:   print "set data style lines";
                    117:   print
                    118: # End of general commands section
                    119:   pltcmd="plot '"FILENAME"'";
                    120: }
                    121:
                    122: {
                    123: # Generate a fragment of the plot command for each contour
                    124:   if ($2=="Contour")
                    125:   {
                    126:     split($3,indx,",");
                    127:     titl=$5;
                    128:     if ($3=="0,") { pltcmd=sprintf(fmt1, pltcmd, indx[1], titl); }
                    129:     else          { pltcmd=sprintf(fmt2, pltcmd, indx[1], titl); }
                    130:   }
                    131: # Add labels at every nth point along a contour
                    132:   if( (n!=0) && ($0 !~ /^\#/) && ($0 !~ /^$/) && ((NR%n)==1))
                    133:     {printf("set label '%s' at %f,%f center\n",$3,$1,$2);}
                    134: }
                    135:
                    136: END {
                    137: # Write out the entire plot command
                    138:   printf "\n%s\n", pltcmd;
                    139: }
                    140:
                    141:  9. There is an initialization problem of when plotting time data with an
                    142:     interval calculation; an inordinate number of m[]tics are automatically
                    143:     drawn, e.g.,
                    144:
                    145:        set xdata time; set ydata time
                    146:        set timefmt "%d/%m"
                    147:        set format x "%b %d"
                    148:        set xrange ["01/12":"06/12"]
                    149:        set xtics "01/12", 172800, "05/12"
                    150:        plot x
                    151:
                    152:     The problem can be avoided by initializing via a plot before the
                    153:     interval calculation:
                    154:        [...]
                    155:        set xrange ["01/12":"06/12"]
                    156:        plot x
                    157:        set xtics "01/12", 172800, "05/12"
                    158:        plot x
                    159:
                    160: 10. (Not really a bug)
                    161:   Terminal drivers which are accompanied by external executables
                    162:   could cause some trouble: their subprocesses (started by fork() e.g.)
                    163:   may inherit handles to open file(s) from the main process.
                    164:   If the filesystem doesn't allow deleting open files these file are
                    165:   locked for the time the terminal driver is running.
                    166:
                    167: 11. OS/2 gcc optimiser bug
                    168:   The following gnuplot commands demonstrate a bug in gcc's optimiser
                    169:   under OS/2. The workaround is to use "-O2 -ffloat-store" instead of "-O2".
                    170:
                    171: reset
                    172: set key
                    173: set xlabel "Year"
                    174: set xdata time
                    175: set timefmt "%y%m%d"
                    176: set format x "%y"
                    177: set xrange ["900621" : "950126"]
                    178: set ylabel "Price per $100 principal"
                    179: plot '-' using 1:2 title 'Fitted IO' with lines 1
                    180: 900621 20
                    181: 950126 55
                    182: e
                    183:
                    184: 12. compiling help file with Visual C++ 4.0/Windows NT
                    185:   The help compiler is unable to compile gnuplot.rtf, possibly because
                    186:   it cannot handle the new RTF spec. There is no workaround, but
                    187:   VC++ 5.0/6.0 users should have no problems.
                    188:
                    189: 13. The 16bit Windows version, compiled by Borland C++ 3.1, crashes with
                    190:   a protection violation in 'all.dem', on the first plot that tries
                    191:   to read a datafile. Heap corruption suspected.
                    192:
                    193: (Moved from old WhatsNew file, needs cleaning up)
                    194:
                    195: BUGS outstanding
                    196:   illegal trailing tab on fig output
                    197:   minor tics missing on HPUX ?
                    198:   terminal settings get propagated when terminal is changed (now fixed ?)
                    199:   set ?range [] writeback is broken for logscales.
                    200:   source file copyrights are out of date - what should go on new files ?
                    201:   to be documented - ms-windows cannot do wide, dashed lines (well, win32 can,
                    202:   but...)
                    203:
                    204: OTHER ISSUES
                    205:   set mapping spherical is not 'real' spherical polars
                    206:   terminals are no longer allowed to do their own scaling
                    207:   break up some of the drivers (eg epson and family) into their
                    208:     own files. *maybe* we can provide libraries of generic routines
                    209:     (particularly tex) which can be used by all interested drivers,
                    210:     and because they are a library, they are linked only if
                    211:     any relevant drivers are installed. bitmap.c could also be
                    212:     linked in this way.
                    213:   Now that all drivers are new format, do we need to explore separate
                    214:     compilation of the drivers into their own .obj files for DOS ?
                    215:   hidden line is still slower than in 3.5
                    216:   have I got all os/2 and (in particular) mac changes ?
                    217:   filled boxes ?
                    218:   substitution using backquotes should not have a length limit
                    219:   the source indentation stinks - may I pass it through gnu indent,
                    220:      or will that mess up use of patches which did not make it into
                    221:      the release.
                    222:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>