Diff for /loncom/xml/lonplot.pm between versions 1.107 and 1.117

version 1.107, 2005/05/16 21:58:41 version 1.117, 2007/05/23 22:36:28
Line 36  use Apache::response; Line 36  use Apache::response;
 use Apache::lonxml;  use Apache::lonxml;
 use Apache::edit;  use Apache::edit;
 use Apache::lonnet;  use Apache::lonnet;
   use lib '/home/httpd/lib/perl/';
   use LONCAPA;
    
   
 use vars qw/$weboutputformat $versionstring/;  use vars qw/$weboutputformat $versionstring/;
   
   
   
 BEGIN {  BEGIN {
     &Apache::lonxml::register('Apache::lonplot',('gnuplot'));      &Apache::lonxml::register('Apache::lonplot',('gnuplot'));
     #      #
Line 48  BEGIN { Line 53  BEGIN {
     if ($versionstring =~ /^gnuplot 4/) {      if ($versionstring =~ /^gnuplot 4/) {
         $weboutputformat = 'png';          $weboutputformat = 'png';
     }      }
       
 }  }
   
   
 ##   ## 
 ## Description of data structures:  ## Description of data structures:
 ##  ##
Line 98  my %linestyles = Line 105  my %linestyles =
      yerrorbars    => [3,4],       yerrorbars    => [3,4],
      xyerrorbars    => [4,6],       xyerrorbars    => [4,6],
      boxes          => 3,       boxes          => 3,
        filledcurves   => 2,
      vector    => 4       vector    => 4
     );          );    
   
Line 120  my $words_test     = sub {$_[0]=~s/\s+/ Line 128  my $words_test     = sub {$_[0]=~s/\s+/
 ###################################################################  ###################################################################
 my @gnuplot_edit_order =   my @gnuplot_edit_order = 
     qw/alttag bgcolor fgcolor height width font transparent grid samples       qw/alttag bgcolor fgcolor height width font transparent grid samples 
     border align texwidth texfont plotcolor plottype lmargin rmargin tmargin      border align texwidth texfont plotcolor plottype gridtype lmargin rmargin
     bmargin major_ticscale minor_ticscale/;      tmargin bmargin major_ticscale minor_ticscale boxwidth gridlayer fillstyle
       pattern solid/;
   
 my $margin_choices = ['default',0..20];  my $margin_choices = ['default',0..20];
   
Line 174  my %gnuplot_defaults = Line 183  my %gnuplot_defaults =
  description => 'Display grid',   description => 'Display grid',
  edit_type   => 'onoff'   edit_type   => 'onoff'
  },   },
        gridlayer    => {
    default     => 'off',
    test        => $onoff_test, 
    description => 'Display grid front layer over filled boxes or filled curves',
    edit_type   => 'onoff'
    },
        box_border   => {
    default     => 'noborder',
    test        => sub {$_[0]=~/^(noborder|border)$/},
    description => 'Draw border for boxes',
    edit_type   => 'choice',
    choices     => ['border','noborder']
    },
      border       => {       border       => {
  default     => 'on',   default     => 'on',
  test        => $onoff_test,    test        => $onoff_test, 
Line 187  my %gnuplot_defaults = Line 209  my %gnuplot_defaults =
  edit_type   => 'choice',   edit_type   => 'choice',
  choices     => ['small','medium','large']   choices     => ['small','medium','large']
  },   },
      samples         => {       samples      => {
  default     => '100',   default     => '100',
  test        => $int_test,   test        => $int_test,
  description => 'Number of samples for non-data plots',   description => 'Number of samples for non-data plots',
Line 195  my %gnuplot_defaults = Line 217  my %gnuplot_defaults =
  choices     => ['100','200','500','1000','2000','5000']   choices     => ['100','200','500','1000','2000','5000']
  },   },
      align        => {       align        => {
  default     => 'center',   default     => 'middle',
  test        => sub {$_[0]=~/^(left|right|center)$/},   test        => sub {$_[0]=~/^(left|right|middle|center)$/},
  description => 'alignment for image in html',   description => 'alignment for image in html',
  edit_type   => 'choice',   edit_type   => 'choice',
  choices     => ['left','right','center']   choices     => ['left','right','middle']
  },   },
      texwidth     => {       texwidth     => {
          default     => '93',           default     => '93',
Line 208  my %gnuplot_defaults = Line 230  my %gnuplot_defaults =
          edit_type   => 'entry',           edit_type   => 'entry',
          size        => '5'           size        => '5'
          },           },
      texfont     => {       texfont      => {
          default     => '22',           default     => '22',
          test        => $int_test,           test        => $int_test,
          description => 'Font size to use in TeX output (pts):',           description => 'Font size to use in TeX output (pts):',
          edit_type   => 'choice',           edit_type   => 'choice',
          choices     => [qw/8 10 12 14 16 18 20 22 24 26 28 30 32 34 36/],           choices     => [qw/8 10 12 14 16 18 20 22 24 26 28 30 32 34 36/],
          },           },
      plotcolor   => {       plotcolor    => {
          default     => 'monochrome',           default     => 'monochrome',
          test        => sub {$_[0]=~/^(monochrome|color|colour)$/},           test        => sub {$_[0]=~/^(monochrome|color|colour)$/},
          description => 'Color setting for printing:',           description => 'Color setting for printing:',
          edit_type   => 'choice',           edit_type   => 'choice',
          choices     => [qw/monochrome color colour/],           choices     => [qw/monochrome color colour/],
          },           },
      plottype  => {       pattern      => {
    default     => '',
    test        => $int_test,
    description => 'pattern value for boxes:',
    edit_type   => 'choice',
            choices     => [0,1,2,3,4,5,6]
            },
        solid        => {
            default     => 0,
            test        => $real_test,
            description => 'The density of fill style for boxes',
            edit_type   => 'entry',
            size        => '5'
            },
        fillstyle    => {
    default     => 'empty',
    test        => sub {$_[0]=~/^(empty|solid|pattern)$/},
    description => 'Filled style for boxes:',
    edit_type   => 'choice',
            choices     => ['empty','solid','pattern']
            },
        plottype     => {
  default     => 'Cartesian',   default     => 'Cartesian',
  test        => sub {$_[0]=~/^(Polar|Cartesian)$/},   test        => sub {$_[0]=~/^(Polar|Cartesian)$/},
  description => 'Plot type:',   description => 'Plot type:',
  edit_type   => 'choice',   edit_type   => 'choice',
          choices     => ['Cartesian','Polar']           choices     => ['Cartesian','Polar']
          },           },
      lmargin   => {       gridtype     => {
    default     => 'Cartesian',
    test        => sub {$_[0]=~/^(Polar|Cartesian)$/},
    description => 'Grid type:',
    edit_type   => 'choice',
            choices     => ['Cartesian','Polar']
            },
        lmargin      => {
  default     => 'default',   default     => 'default',
  test        => sub {$_[0]=~/^(default|\d+)$/},   test        => sub {$_[0]=~/^(default|\d+)$/},
  description => 'Left margin width (pts):',   description => 'Left margin width (pts):',
  edit_type   => 'choice',   edit_type   => 'choice',
          choices     => $margin_choices,           choices     => $margin_choices,
          },           },
      rmargin   => {       rmargin      => {
  default     => 'default',   default     => 'default',
  test        => sub {$_[0]=~/^(default|\d+)$/},   test        => sub {$_[0]=~/^(default|\d+)$/},
  description => 'Right margin width (pts):',   description => 'Right margin width (pts):',
  edit_type   => 'choice',   edit_type   => 'choice',
          choices     => $margin_choices,           choices     => $margin_choices,
          },           },
      tmargin   => {       tmargin      => {
  default     => 'default',   default     => 'default',
  test        => sub {$_[0]=~/^(default|\d+)$/},   test        => sub {$_[0]=~/^(default|\d+)$/},
  description => 'Top margin width (pts):',   description => 'Top margin width (pts):',
  edit_type   => 'choice',   edit_type   => 'choice',
          choices     => $margin_choices,           choices     => $margin_choices,
          },           },
      bmargin   => {       bmargin      => {
  default     => 'default',   default     => 'default',
  test        => sub {$_[0]=~/^(default|\d+)$/},   test        => sub {$_[0]=~/^(default|\d+)$/},
  description => 'Bottom margin width (pts):',   description => 'Bottom margin width (pts):',
  edit_type   => 'choice',   edit_type   => 'choice',
          choices     => $margin_choices,           choices     => $margin_choices,
          },           },
        boxwidth     => {
    default     => '',
    test        => $real_test, 
    description => 'width of boxes default auto',
    edit_type   => 'entry',
            size        => '5'
            },
      major_ticscale  => {       major_ticscale  => {
          default     => '1',           default     => '1',
          test        => $real_test,           test        => $real_test,
Line 410  my %axis_defaults = Line 467  my %axis_defaults =
  }   }
      );       );
   
 my @curve_edit_order = ('color','name','linestyle','pointtype','pointsize');  my @curve_edit_order = ('color','name','linestyle','pointtype','pointsize','limit');
   
 my %curve_defaults =   my %curve_defaults = 
     (      (
Line 456  my %curve_defaults = Line 513  my %curve_defaults =
          description => 'point type (may not apply to all line styles)',           description => 'point type (may not apply to all line styles)',
          edit_type   => 'choice',           edit_type   => 'choice',
          choices     => [0,1,2,3,4,5,6]           choices     => [0,1,2,3,4,5,6]
          }           },
        limit     => {
            default     => 'closed',
    test        => sub {$_[0]=~/^(closed|x1|x2|y1|y2)$/},
            description => 'point to fill -- for filledcurves',
            edit_type   => 'choice',
            choices     => ['closed','x1','x2','y1','y2']
            },
      );       );
   
 ###################################################################  ###################################################################
Line 486  sub start_gnuplot { Line 550  sub start_gnuplot {
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result .= &Apache::edit::tag_start($target,$token,'GnuPlot');   $result .= &Apache::edit::tag_start($target,$token,'GnuPlot');
  $result .= &edit_attributes($target,$token,\%gnuplot_defaults,   $result .= &edit_attributes($target,$token,\%gnuplot_defaults,
     \@gnuplot_edit_order);      \@gnuplot_edit_order)
       .&Apache::edit::end_row()
       .&Apache::edit::start_spanning_row();
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  my $constructtag=&Apache::edit::get_new_args   my $constructtag=&Apache::edit::get_new_args
     ($token,$parstack,$safeeval,keys(%gnuplot_defaults));      ($token,$parstack,$safeeval,keys(%gnuplot_defaults));
Line 520  sub end_gnuplot { Line 586  sub end_gnuplot {
     '_'.time.'_'.$$.$randnumber.'_plot';      '_'.time.'_'.$$.$randnumber.'_plot';
  ## Write the plot description to the file   ## Write the plot description to the file
  &write_gnuplot_file($tmpdir,$filename,$target);   &write_gnuplot_file($tmpdir,$filename,$target);
  $filename = &Apache::lonnet::escape($filename);   $filename = &escape($filename);
  ## return image tag for the plot   ## return image tag for the plot
  if ($target eq 'web') {   if ($target eq 'web') {
     $result .= <<"ENDIMAGE";      $result .= <<"ENDIMAGE";
 <img src    = "/cgi-bin/plot.gif?file=$filename.data&output=$weboutputformat"   <img src    = "/cgi-bin/plot.$weboutputformat?file=$filename.data" 
      width  = "$Apache::lonplot::plot{'width'}"       width  = "$Apache::lonplot::plot{'width'}"
      height = "$Apache::lonplot::plot{'height'}"       height = "$Apache::lonplot::plot{'height'}"
      align  = "$Apache::lonplot::plot{'align'}"       align  = "$Apache::lonplot::plot{'align'}"
Line 535  ENDIMAGE Line 601  ENDIMAGE
     &Apache::lonxml::debug(" gnuplot ht  = $Apache::lonplot::plot{'height'}");      &Apache::lonxml::debug(" gnuplot ht  = $Apache::lonplot::plot{'height'}");
     #might be inside the safe space, register the URL for later      #might be inside the safe space, register the URL for later
     &Apache::lonxml::register_ssi("/cgi-bin/plot.gif?file=$filename.data&output=eps");      &Apache::lonxml::register_ssi("/cgi-bin/plot.gif?file=$filename.data&output=eps");
     $result = '\graphicspath{{/home/httpd/perl/tmp/}}\includegraphics[width='.$Apache::lonplot::plot{'texwidth'}.' mm]{'.&Apache::lonnet::unescape($filename).'.eps}';      $result  = "%DYNAMICIMAGE:$Apache::lonplot::plot{'width'}:$Apache::lonplot::plot{'height'}:$Apache::lonplot::plot{'texwidth'}\n";
       $result .= '\graphicspath{{/home/httpd/perl/tmp/}}'."\n";
       $result .= '\includegraphics[width='.$Apache::lonplot::plot{'texwidth'}.' mm]{'.&unescape($filename).'.eps}';
  }   }
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result.=&Apache::edit::tag_end($target,$token);   $result.=&Apache::edit::tag_end($target,$token);
Line 642  sub start_title { Line 710  sub start_title {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result='';      my $result='';
     if ($target eq 'web' || $target eq 'tex') {      if ($target eq 'web' || $target eq 'tex') {
  $title = &Apache::lonxml::get_all_text("/title",$parser);   $title = &Apache::lonxml::get_all_text("/title",$parser,$style);
  $title=&Apache::run::evaluate($title,$safeeval,$$parstack[-1]);   $title=&Apache::run::evaluate($title,$safeeval,$$parstack[-1]);
  $title =~ s/\n/ /g;   $title =~ s/\n/ /g;
  if (length($title) > $max_str_len) {   if (length($title) > $max_str_len) {
Line 650  sub start_title { Line 718  sub start_title {
  }   }
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result.=&Apache::edit::tag_start($target,$token,'Plot Title');   $result.=&Apache::edit::tag_start($target,$token,'Plot Title');
  my $text=&Apache::lonxml::get_all_text("/title",$parser);   my $text=&Apache::lonxml::get_all_text("/title",$parser,$style);
  $result.=&Apache::edit::end_row().   $result.=&Apache::edit::editline('',$text,'',60);
     &Apache::edit::start_spanning_row().  
     &Apache::edit::editline('',$text,'',60);  
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  $result.=&Apache::edit::rebuild_tag($token);   $result.=&Apache::edit::rebuild_tag($token);
  $result.=&Apache::edit::modifiedfield("/title",$parser);   $result.=&Apache::edit::modifiedfield("/title",$parser);
Line 675  sub start_xlabel { Line 741  sub start_xlabel {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result='';      my $result='';
     if ($target eq 'web' || $target eq 'tex') {      if ($target eq 'web' || $target eq 'tex') {
  $xlabel = &Apache::lonxml::get_all_text("/xlabel",$parser);   $xlabel = &Apache::lonxml::get_all_text("/xlabel",$parser,$style);
  $xlabel=&Apache::run::evaluate($xlabel,$safeeval,$$parstack[-1]);   $xlabel=&Apache::run::evaluate($xlabel,$safeeval,$$parstack[-1]);
  $xlabel =~ s/\n/ /g;   $xlabel =~ s/\n/ /g;
  if (length($xlabel) > $max_str_len) {   if (length($xlabel) > $max_str_len) {
Line 683  sub start_xlabel { Line 749  sub start_xlabel {
  }   }
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result.=&Apache::edit::tag_start($target,$token,'Plot Xlabel');   $result.=&Apache::edit::tag_start($target,$token,'Plot Xlabel');
  my $text=&Apache::lonxml::get_all_text("/xlabel",$parser);   my $text=&Apache::lonxml::get_all_text("/xlabel",$parser,$style);
  $result.=&Apache::edit::end_row().   $result.=&Apache::edit::editline('',$text,'',60);
     &Apache::edit::start_spanning_row().  
     &Apache::edit::editline('',$text,'',60);  
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  $result.=&Apache::edit::rebuild_tag($token);   $result.=&Apache::edit::rebuild_tag($token);
  $result.=&Apache::edit::modifiedfield("/xlabel",$parser);   $result.=&Apache::edit::modifiedfield("/xlabel",$parser);
Line 709  sub start_ylabel { Line 773  sub start_ylabel {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result='';      my $result='';
     if ($target eq 'web' || $target eq 'tex') {      if ($target eq 'web' || $target eq 'tex') {
  $ylabel = &Apache::lonxml::get_all_text("/ylabel",$parser);   $ylabel = &Apache::lonxml::get_all_text("/ylabel",$parser,$style);
  $ylabel = &Apache::run::evaluate($ylabel,$safeeval,$$parstack[-1]);   $ylabel = &Apache::run::evaluate($ylabel,$safeeval,$$parstack[-1]);
  $ylabel =~ s/\n/ /g;   $ylabel =~ s/\n/ /g;
  if (length($ylabel) > $max_str_len) {   if (length($ylabel) > $max_str_len) {
Line 717  sub start_ylabel { Line 781  sub start_ylabel {
  }   }
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result .= &Apache::edit::tag_start($target,$token,'Plot Ylabel');   $result .= &Apache::edit::tag_start($target,$token,'Plot Ylabel');
  my $text = &Apache::lonxml::get_all_text("/ylabel",$parser);   my $text = &Apache::lonxml::get_all_text("/ylabel",$parser,$style);
  $result .= &Apache::edit::end_row().   $result .= &Apache::edit::editline('',$text,'',60);
     &Apache::edit::start_spanning_row().  
     &Apache::edit::editline('',$text,'',60);  
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  $result.=&Apache::edit::rebuild_tag($token);   $result.=&Apache::edit::rebuild_tag($token);
  $result.=&Apache::edit::modifiedfield("/ylabel",$parser);   $result.=&Apache::edit::modifiedfield("/ylabel",$parser);
Line 746  sub start_label { Line 808  sub start_label {
  my %label;   my %label;
  &get_attributes(\%label,\%label_defaults,$parstack,$safeeval,   &get_attributes(\%label,\%label_defaults,$parstack,$safeeval,
     $tagstack->[-1]);      $tagstack->[-1]);
  my $text = &Apache::lonxml::get_all_text("/label",$parser);   my $text = &Apache::lonxml::get_all_text("/label",$parser,$style);
  $text = &Apache::run::evaluate($text,$safeeval,$$parstack[-1]);   $text = &Apache::run::evaluate($text,$safeeval,$$parstack[-1]);
  $text =~ s/\n/ /g;   $text =~ s/\n/ /g;
  $text = substr($text,0,$max_str_len) if (length($text) > $max_str_len);   $text = substr($text,0,$max_str_len) if (length($text) > $max_str_len);
Line 755  sub start_label { Line 817  sub start_label {
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result .= &Apache::edit::tag_start($target,$token,'Plot Label');   $result .= &Apache::edit::tag_start($target,$token,'Plot Label');
  $result .= &edit_attributes($target,$token,\%label_defaults);   $result .= &edit_attributes($target,$token,\%label_defaults);
  my $text = &Apache::lonxml::get_all_text("/label",$parser);   my $text = &Apache::lonxml::get_all_text("/label",$parser,$style);
  $result .= &Apache::edit::end_row().   $result .= &Apache::edit::end_row().
     &Apache::edit::start_spanning_row().      &Apache::edit::start_spanning_row().
     &Apache::edit::editline('',$text,'',60);      &Apache::edit::editline('',$text,'',60);
Line 792  sub start_curve { Line 854  sub start_curve {
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result .= &Apache::edit::tag_start($target,$token,'Curve');   $result .= &Apache::edit::tag_start($target,$token,'Curve');
  $result .= &edit_attributes($target,$token,\%curve_defaults,   $result .= &edit_attributes($target,$token,\%curve_defaults,
                                     \@curve_edit_order);                                      \@curve_edit_order)
       .&Apache::edit::end_row()
       .&Apache::edit::start_spanning_row();
   
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  my $constructtag=&Apache::edit::get_new_args   my $constructtag=&Apache::edit::get_new_args
     ($token,$parstack,$safeeval,keys(%curve_defaults));      ($token,$parstack,$safeeval,keys(%curve_defaults));
  if ($constructtag) {   if ($constructtag) {
     $result = &Apache::edit::rebuild_tag($token);      $result = &Apache::edit::rebuild_tag($token);
     $result.= &Apache::edit::handle_insert();  
  }   }
     }      }
     return $result;      return $result;
Line 829  sub start_function { Line 893  sub start_function {
                  'curve function declaration.');                   'curve function declaration.');
     delete $curves[-1]->{'data'} ;      delete $curves[-1]->{'data'} ;
  }   }
         my $function = &Apache::lonxml::get_all_text("/function",$parser);          my $function = &Apache::lonxml::get_all_text("/function",$parser,
        $style);
  $function = &Apache::run::evaluate($function,$safeeval,$$parstack[-1]);   $function = &Apache::run::evaluate($function,$safeeval,$$parstack[-1]);
  $curves[-1]->{'function'} = $function;    $curves[-1]->{'function'} = $function; 
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result .= &Apache::edit::tag_start($target,$token,'Gnuplot compatible curve function');   $result .= &Apache::edit::tag_start($target,$token,'Gnuplot compatible curve function');
  my $text = &Apache::lonxml::get_all_text("/function",$parser);   my $text = &Apache::lonxml::get_all_text("/function",$parser,$style);
  $result .= &Apache::edit::end_row().   $result .= &Apache::edit::editline('',$text,'',60);
     &Apache::edit::start_spanning_row().  
     &Apache::edit::editline('',$text,'',60);  
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  $result.=&Apache::edit::rebuild_tag($token);   $result.=&Apache::edit::rebuild_tag($token);
  $result.=&Apache::edit::modifiedfield("/function",$parser);   $result.=&Apache::edit::modifiedfield("/function",$parser);
Line 868  sub start_data { Line 931  sub start_data {
                  'curve data declaration.');                   'curve data declaration.');
     delete($curves[-1]->{'function'});      delete($curves[-1]->{'function'});
  }   }
  my $datatext = &Apache::lonxml::get_all_text("/data",$parser);   my $datatext = &Apache::lonxml::get_all_text("/data",$parser,$style);
  $datatext=&Apache::run::evaluate($datatext,$safeeval,$$parstack[-1]);   $datatext=&Apache::run::evaluate($datatext,$safeeval,$$parstack[-1]);
  # Deal with cases where we're given an array...   # Deal with cases where we're given an array...
  if ($datatext =~ /^\@/) {   if ($datatext =~ /^\@/) {
Line 911  sub start_data { Line 974  sub start_data {
  push  @{$curves[-1]->{'data'}},\@data;   push  @{$curves[-1]->{'data'}},\@data;
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result .= &Apache::edit::tag_start($target,$token,'Comma or space deliminated curve data');   $result .= &Apache::edit::tag_start($target,$token,'Comma or space deliminated curve data');
  my $text = &Apache::lonxml::get_all_text("/data",$parser);   my $text = &Apache::lonxml::get_all_text("/data",$parser,$style);
  $result .= &Apache::edit::end_row().   $result .= &Apache::edit::editline('',$text,'',60);
     &Apache::edit::start_spanning_row().  
     &Apache::edit::editline('',$text,'',60);  
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  $result.=&Apache::edit::rebuild_tag($token);   $result.=&Apache::edit::rebuild_tag($token);
  $result.=&Apache::edit::modifiedfield("/data",$parser);   $result.=&Apache::edit::modifiedfield("/data",$parser);
Line 1051  sub write_gnuplot_file { Line 1112  sub write_gnuplot_file {
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
  $gnuplot_input .= "set term postscript eps $Apache::lonplot::plot{'plotcolor'} solid \"Helvetica\" $pt \n";   $gnuplot_input .= "set term postscript eps $Apache::lonplot::plot{'plotcolor'} solid \"Helvetica\" $pt \n";
  $gnuplot_input .= "set output \"/home/httpd/perl/tmp/".   $gnuplot_input .= "set output \"/home/httpd/perl/tmp/".
     &Apache::lonnet::unescape($filename).".eps\"\n";      &unescape($filename).".eps\"\n";
     }      }
     # cartesian or polar?      # cartesian or polar plot?
     if (lc($Apache::lonplot::plot{'plottype'}) eq 'polar') {      if (lc($Apache::lonplot::plot{'plottype'}) eq 'polar') {
         $gnuplot_input .= 'set polar'.$/;          $gnuplot_input .= 'set polar'.$/;
     } else {      } else {
         # Assume Cartesian          # Assume Cartesian
     }      }
       # cartesian or polar grid?
       if (lc($Apache::lonplot::plot{'gridtype'}) eq 'polar') {
           $gnuplot_input .= 'set grid polar'.$/;
       } else {
           # Assume Cartesian
       }
       # solid or pattern for boxes?
       if (lc($Apache::lonplot::plot{'fillstyle'}) eq 'solid') {
           $gnuplot_input .= 'set style fill solid '.
       $Apache::lonplot::plot{'solid'}.$Apache::lonplot::plot{'box_border'}.$/;
       } elsif (lc($Apache::lonplot::plot{'fillstyle'}) eq 'pattern') {
           $gnuplot_input .= 'set style fill pattern '.$Apache::lonplot::plot{'pattern'}.$Apache::lonplot::plot{'box_border'}.$/;
       } elsif (lc($Apache::lonplot::plot{'fillstyle'}) eq 'empty') {
       }
     # margin      # margin
     if (lc($Apache::lonplot::plot{'lmargin'}) ne 'default') {      if (lc($Apache::lonplot::plot{'lmargin'}) ne 'default') {
         $gnuplot_input .= 'set lmargin '.$Apache::lonplot::plot{'lmargin'}.$/;          $gnuplot_input .= 'set lmargin '.$Apache::lonplot::plot{'lmargin'}.$/;
Line 1075  sub write_gnuplot_file { Line 1150  sub write_gnuplot_file {
     # tic scales      # tic scales
     $gnuplot_input .= 'set ticscale '.      $gnuplot_input .= 'set ticscale '.
         $Apache::lonplot::plot{'major_ticscale'}.' '.$Apache::lonplot::plot{'minor_ticscale'}.$/;          $Apache::lonplot::plot{'major_ticscale'}.' '.$Apache::lonplot::plot{'minor_ticscale'}.$/;
       #boxwidth
       if (lc($Apache::lonplot::plot{'boxwidth'}) ne '') {
    $gnuplot_input .= 'set boxwidth '.$Apache::lonplot::plot{'boxwidth'}.$/;
       }
       # gridlayer
       $gnuplot_input .= 'set grid noxtics noytics front '.$/ 
    if ($Apache::lonplot::plot{'gridlayer'} eq 'on');
   
     # grid      # grid
     $gnuplot_input .= 'set grid'.$/ if ($Apache::lonplot::plot{'grid'} eq 'on');      $gnuplot_input .= 'set grid'.$/ if ($Apache::lonplot::plot{'grid'} eq 'on');
     # border      # border
Line 1163  sub write_gnuplot_file { Line 1246  sub write_gnuplot_file {
                 ($curve->{'linestyle'} eq 'xyerrorbars')) {                  ($curve->{'linestyle'} eq 'xyerrorbars')) {
                 $gnuplot_input.=' pointtype '.$curve->{'pointtype'};                  $gnuplot_input.=' pointtype '.$curve->{'pointtype'};
                 $gnuplot_input.=' pointsize '.$curve->{'pointsize'};                  $gnuplot_input.=' pointsize '.$curve->{'pointsize'};
               } elsif ($curve->{'linestyle'} eq 'filledcurves') { 
                   $gnuplot_input.= ' '.$curve->{'limit'};
             }              }
  } elsif (exists($curve->{'data'})) {   } elsif (exists($curve->{'data'})) {
     # Store data values in $datatext      # Store data values in $datatext
Line 1196  sub write_gnuplot_file { Line 1281  sub write_gnuplot_file {
                 ($curve->{'linestyle'} eq 'xyerrorbars')) {                  ($curve->{'linestyle'} eq 'xyerrorbars')) {
                 $gnuplot_input.=' pointtype '.$curve->{'pointtype'};                  $gnuplot_input.=' pointtype '.$curve->{'pointtype'};
                 $gnuplot_input.=' pointsize '.$curve->{'pointsize'};                  $gnuplot_input.=' pointsize '.$curve->{'pointsize'};
               } elsif ($curve->{'linestyle'} eq 'filledcurves') { 
                   $gnuplot_input.= ' '.$curve->{'limit'};
             }              }
  }   }
     }      }

Removed from v.1.107  
changed lines
  Added in v.1.117


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