Diff for /loncom/xml/lonplot.pm between versions 1.87 and 1.90

version 1.87, 2003/08/28 20:38:25 version 1.90, 2003/09/19 20:05:29
Line 34 Line 34
 package Apache::lonplot;  package Apache::lonplot;
   
 use strict;  use strict;
   use warnings FATAL=>'all';
   no warnings 'uninitialized';
 use Apache::File;  use Apache::File;
 use Apache::response;  use Apache::response;
 use Apache::lonxml;  use Apache::lonxml;
Line 289  my %label_defaults = Line 291  my %label_defaults =
      }       }
      );       );
   
 my @tic_edit_order = ('location','mirror','start','increment','end');  my @tic_edit_order = ('location','mirror','start','increment','end',
                         'minorfreq');
 my %tic_defaults =  my %tic_defaults =
     (      (
      location => {       location => {
  default => 'border',    default => 'border', 
  test => sub {$_[0]=~/^(border|axis)$/},   test => sub {$_[0]=~/^(border|axis)$/},
  description => 'Location of tick marks',   description => 'Location of major tic marks',
  edit_type   => 'choice',   edit_type   => 'choice',
  choices     => ['border','axis']   choices     => ['border','axis']
  },   },
      mirror => {       mirror => {
  default => 'on',    default => 'on', 
  test => $onoff_test,   test => $onoff_test,
  description => 'mirror ticks on opposite axis?',   description => 'mirror tics on opposite axis?',
  edit_type   => 'onoff'   edit_type   => 'onoff'
  },   },
      start => {       start => {
  default => '-10.0',   default => '-10.0',
  test => $real_test,   test => $real_test,
  description => 'Start ticks at',   description => 'Start major tics at',
  edit_type   => 'entry',   edit_type   => 'entry',
  size        => '10'   size        => '10'
  },   },
      increment => {       increment => {
  default => '1.0',   default => '1.0',
  test => $real_test,   test => $real_test,
  description => 'Place a tick every',   description => 'Place a major tic every',
  edit_type   => 'entry',   edit_type   => 'entry',
  size        => '10'   size        => '10'
  },   },
      end => {       end => {
  default => ' 10.0',   default => ' 10.0',
  test => $real_test,   test => $real_test,
  description => 'Stop ticks at ',   description => 'Stop major tics at ',
  edit_type   => 'entry',   edit_type   => 'entry',
  size        => '10'   size        => '10'
  },   },
        minorfreq => {
    default => '0',
    test => $int_test,
    description => 'Number of minor tics between major tic marks',
    edit_type   => 'entry',
    size        => '10'
    },         
      );       );
   
 my @axis_edit_order = ('color','xmin','xmax','ymin','ymax');  my @axis_edit_order = ('color','xmin','xmax','ymin','ymax');
Line 456  my %curve_defaults = Line 466  my %curve_defaults =
 my (%plot,%key,%axis,$title,$xlabel,$ylabel,@labels,@curves,%xtics,%ytics);  my (%plot,%key,%axis,$title,$xlabel,$ylabel,@labels,@curves,%xtics,%ytics);
   
 sub start_gnuplot {  sub start_gnuplot {
     %plot    = ();      %key     = ();      %axis   = ();       undef(%plot);   undef(%key);    undef(%axis);
     $title   = undef;   $xlabel  = undef;   $ylabel = undef;      undef($title);  undef($xlabel); undef($ylabel);
     $#labels = -1;      $#curves = -1;      undef(@labels); undef(@curves);
     %xtics    = ();      %ytics    = ();      undef(%xtics);  undef(%ytics);
     #      #
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result='';      my $result='';
Line 1024  sub write_gnuplot_file { Line 1034  sub write_gnuplot_file {
  # set output   # set output
  $gnuplot_input .= "set output\n";   $gnuplot_input .= "set output\n";
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
  $gnuplot_input .= "set term postscript eps monochrome solid\n";   $gnuplot_input .= "set term postscript eps monochrome solid \"Helvetica\" 25 \n";
  $gnuplot_input .= "set output \"/home/httpd/perl/tmp/".   $gnuplot_input .= "set output \"/home/httpd/perl/tmp/".
     &Apache::lonnet::unescape($filename).".eps\"\n";      &Apache::lonnet::unescape($filename).".eps\"\n";
     }      }
Line 1044  sub write_gnuplot_file { Line 1054  sub write_gnuplot_file {
     $gnuplot_input .= "set samples $plot{'samples'}\n";      $gnuplot_input .= "set samples $plot{'samples'}\n";
     # title, xlabel, ylabel      # title, xlabel, ylabel
     # titles      # titles
     $gnuplot_input .= "set title  \"$title\"\n"  if (defined($title)) ;      if ($target eq 'tex') {
     $gnuplot_input .= "set xlabel \"$xlabel\"\n" if (defined($xlabel));          $gnuplot_input .= "set title  \"$title\" font \"Helvetica,25pt\"\n"  if (defined($title)) ;
     $gnuplot_input .= "set ylabel \"$ylabel\"\n" if (defined($ylabel));          $gnuplot_input .= "set xlabel \"$xlabel\" font \"Helvetica,25pt\" \n" if (defined($xlabel));
           $gnuplot_input .= "set ylabel \"$ylabel\" font \"Helvetica,25pt\"\n" if (defined($ylabel));
       } else {
           $gnuplot_input .= "set title  \"$title\"  \n"  if (defined($title)) ;
           $gnuplot_input .= "set xlabel \"$xlabel\" \n" if (defined($xlabel));
           $gnuplot_input .= "set ylabel \"$ylabel\" \n" if (defined($ylabel));
       }
     # tics      # tics
     if (%xtics) {          if (%xtics) {    
  $gnuplot_input .= "set xtics $xtics{'location'} ";   $gnuplot_input .= "set xtics $xtics{'location'} ";
Line 1054  sub write_gnuplot_file { Line 1070  sub write_gnuplot_file {
  $gnuplot_input .= "$xtics{'start'}, ";   $gnuplot_input .= "$xtics{'start'}, ";
  $gnuplot_input .= "$xtics{'increment'}, ";   $gnuplot_input .= "$xtics{'increment'}, ";
  $gnuplot_input .= "$xtics{'end'}\n";   $gnuplot_input .= "$xtics{'end'}\n";
           if ($xtics{'minorfreq'} != 0) {
               $gnuplot_input .= "set mxtics ".$xtics{'minorfreq'}."\n";
           } 
     }      }
     if (%ytics) {          if (%ytics) {    
  $gnuplot_input .= "set ytics $ytics{'location'} ";   $gnuplot_input .= "set ytics $ytics{'location'} ";
Line 1061  sub write_gnuplot_file { Line 1080  sub write_gnuplot_file {
  $gnuplot_input .= "$ytics{'start'}, ";   $gnuplot_input .= "$ytics{'start'}, ";
  $gnuplot_input .= "$ytics{'increment'}, ";   $gnuplot_input .= "$ytics{'increment'}, ";
         $gnuplot_input .= "$ytics{'end'}\n";          $gnuplot_input .= "$ytics{'end'}\n";
           if ($ytics{'minorfreq'} != 0) {
               $gnuplot_input .= "set mytics ".$ytics{'minorfreq'}."\n";
           } 
     }      }
     # axis      # axis
     if (%axis) {      if (%axis) {
Line 1081  sub write_gnuplot_file { Line 1103  sub write_gnuplot_file {
     my $label;      my $label;
     foreach $label (@labels) {      foreach $label (@labels) {
  $gnuplot_input .= 'set label "'.$label->{'text'}.'" at '.   $gnuplot_input .= 'set label "'.$label->{'text'}.'" at '.
     $label->{'xpos'}.','.$label->{'ypos'}.' '.$label->{'justify'}.$/ ;      $label->{'xpos'}.','.$label->{'ypos'}.' '.$label->{'justify'}.' font "Helvetica,25pt"'.$/ ;
     }      }
     if ($target eq 'tex') {      if ($target eq 'tex') {
         $gnuplot_input .="set size 1,".$plot{'height'}/$plot{'width'}*1.38;          $gnuplot_input .="set size 1,".$plot{'height'}/$plot{'width'}*1.38;

Removed from v.1.87  
changed lines
  Added in v.1.90


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