Mercurial > hg > octave-nkf
changeset 5152:b111ca4715c6
[project @ 2005-02-21 19:41:23 by jwe]
author | jwe |
---|---|
date | Mon, 21 Feb 2005 19:41:23 +0000 |
parents | b142b5a0d6be |
children | ee2af1e830b2 |
files | doc/interpreter/plot.txi scripts/ChangeLog scripts/plot/__axis_label__.m scripts/plot/axis.m scripts/plot/grid.m scripts/plot/plot_border.m scripts/plot/title.m scripts/plot/top_title.m src/ChangeLog src/DLD-FUNCTIONS/gplot.l |
diffstat | 10 files changed, 45 insertions(+), 30 deletions(-) [+] |
line wrap: on
line diff
--- a/doc/interpreter/plot.txi +++ b/doc/interpreter/plot.txi @@ -341,8 +341,6 @@ any arguments. @end deffn -@DOCSTRING(automatic_replot) - Note that NaN values in the plot data are automatically omitted, and Inf values are converted to a very large value before calling gnuplot.
--- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,8 @@ +2005-02-21 John W. Eaton <jwe@octave.org> + + * plot/grid.m, plot/plot_border.m, plot/title.m, plot/top_title.m, + plot/__axis_label__.m: Issue replot command. + 2005-02-09 John W. Eaton <jwe@octave.org> * polynomial/polyderiv.m: Force P to be a row vector.
--- a/scripts/plot/__axis_label__.m +++ b/scripts/plot/__axis_label__.m @@ -32,6 +32,9 @@ if (isstr (text)) eval (sprintf ("gset %s \"%s\"", caller, undo_string_escapes (undo_string_escapes (text)))); + if (automatic_replot) + replot + endif else error ("%s: text must be a string", caller); endif
--- a/scripts/plot/axis.m +++ b/scripts/plot/axis.m @@ -26,11 +26,6 @@ ## axis. The third and fourth specify the limits for the y axis, and the ## fifth and sixth specify the limits for the z axis. ## -## If your plot is already drawn, then you need to use @code{replot} before -## the new axis limits will take effect. You can get this to happen -## automatically by setting the built-in variable @code{automatic_replot} -## to a nonzero value. -## ## Without any arguments, @code{axis} turns autoscaling on. ## ## With one output argument, @code{x=axis} returns the current axes @@ -174,7 +169,7 @@ gset yrange [] writeback; gset zrange [] writeback; ## XXX FIXME XXX if writeback were set in plot, no need to replot here. - replot; + replot gset noautoscale x; gset noautoscale y; gset noautoscale z; @@ -268,6 +263,8 @@ if (nargin > 1) axis (varargin{:}); + elseif (automatic_replot) + replot endif endfunction
--- a/scripts/plot/grid.m +++ b/scripts/plot/grid.m @@ -35,16 +35,21 @@ usage_msg = "grid (\"on\" | \"off\")"; + do_replot = false; + if (nargin == 0) gset grid; + do_replot = true; elseif (nargin == 1) if (isstr (x)) if (strcmp ("off", x)) gset nogrid; + do_replot = true; elseif (strcmp ("on", x)) gset grid; + do_replot = true; else - usage (usage_msg); + usage (usage_msg); endif else error ("grid: argument must be a string"); @@ -53,4 +58,8 @@ usage (usage_msg); endif + if (do_replot && automatic_replot) + replot + endif + endfunction
--- a/scripts/plot/plot_border.m +++ b/scripts/plot/plot_border.m @@ -110,4 +110,8 @@ eval (sprintf ("gset border %d", border)); endif + if (automatic_replot) + replot + endif + endfunction
--- a/scripts/plot/title.m +++ b/scripts/plot/title.m @@ -19,8 +19,7 @@ ## -*- texinfo -*- ## @deftypefn {Function File} {} title (@var{string}) -## Specify a title for a plot. If you already have a plot displayed, use -## the command @code{replot} to redisplay it with the new title. +## Specify a title for a plot. ## @end deftypefn ## ## @seealso{plot, semilogx, semilogy, loglog, polar, mesh, contour, @@ -37,6 +36,9 @@ if (isstr (text)) eval (sprintf ("gset title \"%s\"", undo_string_escapes (undo_string_escapes (text)))); + if (automatic_replot) + replot + endif else error ("title: text must be a string"); endif
--- a/scripts/plot/top_title.m +++ b/scripts/plot/top_title.m @@ -38,6 +38,9 @@ gset title; eval (sprintf ("gset top_title \"%s\"", undo_string_escapes (undo_string_escapes (text)))); + if (automatic_replot) + replot + endif else error ("error: top_title: text must be a string"); endif
--- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2005-02-21 John W. Eaton <jwe@octave.org> + + * DLD-FUNCTIONS/gplot.l (send_to_plot_stream): + Replot with no previous plot is a no-op. + (makeplot): Likewise. + (Vautomatic_replot): Don't use this variable in low-level functions. + 2005-02-18 John W. Eaton <jwe@octave.org> * Makefile.in (oct-gperf.h): Remove -E from list of gperf options.
--- a/src/DLD-FUNCTIONS/gplot.l +++ b/src/DLD-FUNCTIONS/gplot.l @@ -432,26 +432,13 @@ } int replot_len = Vgnuplot_command_replot.length (); - int splot_len = Vgnuplot_command_splot.length (); - int plot_len = Vgnuplot_command_plot.length (); bool is_replot = (Vgnuplot_command_replot == cmd.substr (0, replot_len)); - bool is_splot = (Vgnuplot_command_splot == cmd.substr (0, splot_len)); - bool is_plot = (Vgnuplot_command_plot == cmd.substr (0, plot_len)); - if (plot_line_count == 0 && is_replot) - error ("replot: no previous plot"); - else + if (! (plot_line_count == 0 && is_replot)) { *plot_stream << cmd; - if (! (is_replot || is_splot || is_plot) - && plot_line_count > 0 - && Vautomatic_replot) - { - *plot_stream << Vgnuplot_command_replot << Vgnuplot_command_end; - } - plot_stream->flush (); } @@ -947,7 +934,7 @@ } if (plottok_or_end_p (tok)) - throw gpt_parse_error ("must have something to plot"); + return 1; else { std::string file; @@ -967,7 +954,7 @@ plot_expr_str += std::string (yytext) + " "; plot_expr_str += read_until (plottok_or_end_p, tok); - int status; + int status = 0; octave_value tmp_data = eval_string (plot_expr_str, true, status); @@ -983,7 +970,7 @@ file = file_ops::tilde_expand (tmp_data.string_value ()); // XXX FIXME XXX -- perhaps should check if the file exists? outstr += file + " "; - } + } else { switch (ndim) @@ -1000,14 +987,14 @@ default: gripe_2_or_3_dim_plot (); break; - } + } if (file.length () > 0) { mark_for_deletion (file); outstr += "'" + file + "' "; } - } + } } }