[LON-CAPA-cvs] cvs: loncom /xml lonplot.pm

matthew lon-capa-cvs@mail.lon-capa.org
Fri, 22 Mar 2002 16:56:37 -0000


matthew		Fri Mar 22 11:56:37 2002 EDT

  Modified files:              
    /loncom/xml	lonplot.pm 
  Log:
  Added pointtype specification, changed pointsize to positive real number,
  fixed bug in which point sizes were not passed to gnuplot for curves which
  used data instead of specifying a function.
  
  
Index: loncom/xml/lonplot.pm
diff -u loncom/xml/lonplot.pm:1.61 loncom/xml/lonplot.pm:1.62
--- loncom/xml/lonplot.pm:1.61	Fri Mar 22 11:04:09 2002
+++ loncom/xml/lonplot.pm	Fri Mar 22 11:56:37 2002
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Dynamic plot
 #
-# $Id: lonplot.pm,v 1.61 2002/03/22 16:04:09 matthew Exp $
+# $Id: lonplot.pm,v 1.62 2002/03/22 16:56:37 matthew Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -97,6 +97,8 @@
 my $int_test       = sub {$_[0]=~s/\s+//g;$_[0]=~/^\d+$/};
 my $real_test      = 
     sub {$_[0]=~s/\s+//g;$_[0]=~/^[+-]?\d*\.?\d*([eE][+-]\d+)?$/};
+my $pos_real_test  =
+    sub {$_[0]=~s/\s+//g;$_[0]=~/^[+]?\d*\.?\d*([eE][+-]\d+)?$/};
 my $color_test     = sub {$_[0]=~s/\s+//g;$_[0]=~/^x[\da-f]{6}$/};
 my $onoff_test     = sub {$_[0]=~/^(on|off)$/};
 my $key_pos_test   = sub {$_[0]=~/^(top|bottom|right|left|outside|below| )+$/};
@@ -367,7 +369,7 @@
 </dl>
 ENDCURVEHELP
 
-my @curve_edit_order = ('color','name','linestyle','pointsize');
+my @curve_edit_order = ('color','name','linestyle','pointtype','pointsize');
 
 my %curve_defaults = 
     (
@@ -402,10 +404,17 @@
 #         },
      pointsize => {
          default     => 1,
-         test        => $int_test,
+         test        => $pos_real_test,
          description => 'point size (may not apply to all line styles)',
+         edit_type   => 'entry',
+         size        => '5'
+         },
+     pointtype => {
+         default     => 1,
+         test        => $int_test,
+         description => 'point type (may not apply to all line styles)',
          edit_type   => 'choice',
-         choices     => [0,1,2,3,4,5,6,7,8,9,10]
+         choices     => [0,1,2,3,4,5,6]
          }
      );
 
@@ -1042,6 +1051,7 @@
                 ($curve->{'linestyle'} eq 'xerrorbars')  ||
                 ($curve->{'linestyle'} eq 'yerrorbars')  ||
                 ($curve->{'linestyle'} eq 'xyerrorbars')) {
+                $gnuplot_input.=' pointtype '.$curve->{'pointtype'};
                 $gnuplot_input.=' pointsize '.$curve->{'pointsize'};
             }
 	} elsif (exists($curve->{'data'})) {
@@ -1067,6 +1077,15 @@
 	    $gnuplot_input.= '"'.$datafilename.'" title "'.
 		$curve->{'name'}.'" with '.
 		$curve->{'linestyle'};
+            if (($curve->{'linestyle'} eq 'points')      ||
+                ($curve->{'linestyle'} eq 'linespoints') ||
+                ($curve->{'linestyle'} eq 'errorbars')   ||
+                ($curve->{'linestyle'} eq 'xerrorbars')  ||
+                ($curve->{'linestyle'} eq 'yerrorbars')  ||
+                ($curve->{'linestyle'} eq 'xyerrorbars')) {
+                $gnuplot_input.=' pointtype '.$curve->{'pointtype'};
+                $gnuplot_input.=' pointsize '.$curve->{'pointsize'};
+            }
 	}
     }
     # Write the output to a file.