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

matthew lon-capa-cvs@mail.lon-capa.org
Fri, 19 Sep 2003 17:53:03 -0000


matthew		Fri Sep 19 13:53:03 2003 EDT

  Modified files:              
    /loncom/xml	lonplot.pm 
  Log:
  Bug 2201: Added support for minor tick marks.  
  Modified font code from Alex to only be used if we are printing.
  
  
Index: loncom/xml/lonplot.pm
diff -u loncom/xml/lonplot.pm:1.88 loncom/xml/lonplot.pm:1.89
--- loncom/xml/lonplot.pm:1.88	Wed Sep 10 09:50:29 2003
+++ loncom/xml/lonplot.pm	Fri Sep 19 13:53:03 2003
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Dynamic plot
 #
-# $Id: lonplot.pm,v 1.88 2003/09/10 13:50:29 sakharuk Exp $
+# $Id: lonplot.pm,v 1.89 2003/09/19 17:53:03 matthew Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -34,6 +34,8 @@
 package Apache::lonplot;
 
 use strict;
+use warnings FATAL=>'all';
+no warnings 'uninitialized';
 use Apache::File;
 use Apache::response;
 use Apache::lonxml;
@@ -289,13 +291,14 @@
      }
      );
 
-my @tic_edit_order = ('location','mirror','start','increment','end');
+my @tic_edit_order = ('location','mirror','start','increment','end',
+                      'minorfreq');
 my %tic_defaults =
     (
      location => {
 	 default => 'border', 
 	 test => sub {$_[0]=~/^(border|axis)$/},
-	 description => 'Location of tick marks',
+	 description => 'Location of major tick marks',
 	 edit_type   => 'choice',
 	 choices     => ['border','axis']
 	 },
@@ -308,24 +311,31 @@
      start => {
 	 default => '-10.0',
 	 test => $real_test,
-	 description => 'Start ticks at',
+	 description => 'Start major ticks at',
 	 edit_type   => 'entry',
 	 size        => '10'
 	 },
      increment => {
 	 default => '1.0',
 	 test => $real_test,
-	 description => 'Place a tick every',
+	 description => 'Place a major tick every',
 	 edit_type   => 'entry',
 	 size        => '10'
 	 },
      end => {
 	 default => ' 10.0',
 	 test => $real_test,
-	 description => 'Stop ticks at ',
+	 description => 'Stop major ticks at ',
 	 edit_type   => 'entry',
 	 size        => '10'
 	 },
+     minorfreq => {
+	 default => '0',
+	 test => $int_test,
+	 description => 'Number of minor tics between major tick marks',
+	 edit_type   => 'entry',
+	 size        => '10'
+	 },         
      );
 
 my @axis_edit_order = ('color','xmin','xmax','ymin','ymax');
@@ -456,10 +466,10 @@
 my (%plot,%key,%axis,$title,$xlabel,$ylabel,@labels,@curves,%xtics,%ytics);
 
 sub start_gnuplot {
-    %plot    = ();      %key     = ();      %axis   = (); 
-    $title   = undef;   $xlabel  = undef;   $ylabel = undef;
-    $#labels = -1;      $#curves = -1;
-    %xtics    = ();      %ytics    = ();
+    undef(%plot);   undef(%key);    undef(%axis);
+    undef($title);  undef($xlabel); undef($ylabel);
+    undef(@labels); undef(@curves);
+    undef(%xtics);  undef(%ytics);
     #
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
     my $result='';
@@ -1044,9 +1054,15 @@
     $gnuplot_input .= "set samples $plot{'samples'}\n";
     # title, xlabel, ylabel
     # titles
-    $gnuplot_input .= "set title  \"$title\" font \"Helvetica,25pt\"\n"  if (defined($title)) ;
-    $gnuplot_input .= "set xlabel \"$xlabel\" font \"Helvetica,25pt\" \n" if (defined($xlabel));
-    $gnuplot_input .= "set ylabel \"$ylabel\" font \"Helvetica,25pt\"\n" if (defined($ylabel));
+    if ($target eq 'tex') {
+        $gnuplot_input .= "set title  \"$title\" font \"Helvetica,25pt\"\n"  if (defined($title)) ;
+        $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
     if (%xtics) {    
 	$gnuplot_input .= "set xtics $xtics{'location'} ";
@@ -1054,6 +1070,9 @@
 	$gnuplot_input .= "$xtics{'start'}, ";
 	$gnuplot_input .= "$xtics{'increment'}, ";
 	$gnuplot_input .= "$xtics{'end'}\n";
+        if ($xtics{'minorfreq'} != 0) {
+            $gnuplot_input .= "set mxtics ".$xtics{'minorfreq'}."\n";
+        } 
     }
     if (%ytics) {    
 	$gnuplot_input .= "set ytics $ytics{'location'} ";
@@ -1061,6 +1080,9 @@
 	$gnuplot_input .= "$ytics{'start'}, ";
 	$gnuplot_input .= "$ytics{'increment'}, ";
         $gnuplot_input .= "$ytics{'end'}\n";
+        if ($ytics{'minorfreq'} != 0) {
+            $gnuplot_input .= "set mytics ".$ytics{'minorfreq'}."\n";
+        } 
     }
     # axis
     if (%axis) {