Diff for /loncom/xml/lonplot.pm between versions 1.34 and 1.35

version 1.34, 2002/01/08 21:41:20 version 1.35, 2002/01/09 16:51:51
Line 28 Line 28
 # 12/15/01 Matthew  # 12/15/01 Matthew
 # 12/17 12/18 12/19 12/20 12/21 12/27 12/28 12/30 12/31 Matthew  # 12/17 12/18 12/19 12/20 12/21 12/27 12/28 12/30 12/31 Matthew
 # 01/01/02 Matthew  # 01/01/02 Matthew
 # 01/02 01/03 01/04 Matthew  # 01/02 01/03 01/04 01/07 01/08 01/09 Matthew
   
   # Current issues
   #   1. Gnuplot is unable to vary the color or linestyle of <data> plots.
   #      The key does not know this so it is misleading for the user.
   #      Multiple <function>s can be plotted with varying line styles and
   #      colors.
   #
 package Apache::lonplot;  package Apache::lonplot;
   
 use strict;  use strict;
Line 87  my %linestyles = Line 94  my %linestyles =
      errorbars    => 3,       errorbars    => 3,
      xerrorbars    => [3,4],       xerrorbars    => [3,4],
      yerrorbars    => [3,4],       yerrorbars    => [3,4],
      xyerrorbars    => [4,6,7],       xyerrorbars    => [4,6],
      boxes          => 3,       boxes          => 3,
      boxerrorbars   => [3,4,5],  #     boxerrorbars   => [3,4,5],
      boxxyerrorbars => [4,6,7],  #     boxxyerrorbars => [4,6,7],
      financebars    => 5,  #     financebars    => 5,
      candlesticks   => 5,  #     candlesticks   => 5,
      vector    => 2       vector    => 4
     );          );    
   
 my $int_test       = sub {$_[0]=~s/\s+//g;$_[0]=~/^\d+$/};  my $int_test       = sub {$_[0]=~s/\s+//g;$_[0]=~/^\d+$/};
Line 271  my %curve_defaults = Line 278  my %curve_defaults =
      linestyle => {       linestyle => {
  default => 'lines',   default => 'lines',
  test => $linestyle_test,   test => $linestyle_test,
  description => 'Style of the axis lines',   description => 'Line style',
  edit_type   => 'choice',   edit_type   => 'choice',
  choices     => ['lines','linespoints','dots','points','steps',   choices     => ['lines','linespoints','dots','points','steps',
  'fsteps','histeps','errorbars','xerrorbars',   'fsteps','histeps','errorbars','xerrorbars',
Line 531  sub start_curve { Line 538  sub start_curve {
  $result .= &edit_attributes($target,$token,\%curve_defaults);   $result .= &edit_attributes($target,$token,\%curve_defaults);
     } 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(%label_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();      $result.= &Apache::edit::handle_insert();
Line 603  sub start_data { Line 610  sub start_data {
  # make sure it's all numbers and make sure each array    # make sure it's all numbers and make sure each array 
  # is of the same length.   # is of the same length.
  my @data;   my @data;
  if ($datatext =~ /,/) {   if ($datatext =~ /,/) { # comma deliminated
     @data = split /,/,$datatext;      @data = split /,/,$datatext;
  } else { # Assume it's space seperated.   } else { # Assume it's space seperated.
     @data = split / /,$datatext;      @data = split / /,$datatext;
Line 624  sub start_data { Line 631  sub start_data {
  $data[$i] = 1.15572734979092;   $data[$i] = 1.15572734979092;
     }      }
  }   }
    # complain if the number of data points is not the same as
    # in previous sets of data.
    if (($curves[-1]->{'data'}) && ($#data != $#{$curves[-1]->{'data'}})){
       &Apache::lonxml::warning
    ('Number of data points is not consistent with previous '.
    'number of data points');
    }
  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,'Curve Data');   $result .= &Apache::edit::tag_start($target,$token,'Curve Data');
Line 829  sub edit_attributes { Line 843  sub edit_attributes {
  @keys = sort(keys(%$defaults));   @keys = sort(keys(%$defaults));
     }      }
     foreach my $attr (@keys) {      foreach my $attr (@keys) {
    # append a ' ' to the description if it doesn't have one already.
    my $description = $defaults->{$attr}->{'description'};
    $description .= ' ' if ($description !~ / $/);
  if ($defaults->{$attr}->{'edit_type'} eq 'entry') {   if ($defaults->{$attr}->{'edit_type'} eq 'entry') {
     $result .= &Apache::edit::text_arg(      $result .= &Apache::edit::text_arg
                  $defaults->{$attr}->{'description'},   ($description,$attr,$token);
  $attr,  
  $token);  
  } elsif ($defaults->{$attr}->{'edit_type'} eq 'choice') {   } elsif ($defaults->{$attr}->{'edit_type'} eq 'choice') {
     $result .= &Apache::edit::select_arg(      $result .= &Apache::edit::select_arg
  $defaults->{$attr}->{'description'},   ($description,$attr,$defaults->{$attr}->{'choices'},$token);
  $attr,  
  $defaults->{$attr}->{'choices'},  
  $token);  
  } elsif ($defaults->{$attr}->{'edit_type'} eq 'on_off') {   } elsif ($defaults->{$attr}->{'edit_type'} eq 'on_off') {
     $result .= &Apache::edit::select_arg(      $result .= &Apache::edit::select_arg
  $defaults->{$attr}->{'description'},   ($description,$attr,['on','off'],$token);
  $attr,  
  ['on','off'],  
  $token);  
  }   }
  $result .= '<br />';   $result .= '<br />';
     }      }

Removed from v.1.34  
changed lines
  Added in v.1.35


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