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

matthew lon-capa-cvs@mail.lon-capa.org
Mon, 30 Aug 2004 15:23:24 -0000


matthew		Mon Aug 30 11:23:24 2004 EDT

  Modified files:              
    /loncom/xml	lonplot.pm 
  Log:
  Added lmargin,rmargin,tmargin,bmargin, major_ticscale, and minor_ticscale
  attributes to the <gnuplot> tag.  This change will not affect any currently
  published plots.
  
  
Index: loncom/xml/lonplot.pm
diff -u loncom/xml/lonplot.pm:1.100 loncom/xml/lonplot.pm:1.101
--- loncom/xml/lonplot.pm:1.100	Tue Aug 17 13:37:56 2004
+++ loncom/xml/lonplot.pm	Mon Aug 30 11:23:23 2004
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Dynamic plot
 #
-# $Id: lonplot.pm,v 1.100 2004/08/17 17:37:56 matthew Exp $
+# $Id: lonplot.pm,v 1.101 2004/08/30 15:23:23 matthew Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -119,7 +119,11 @@
 ###################################################################
 my @gnuplot_edit_order = 
     qw/alttag bgcolor fgcolor height width font transparent grid samples 
-    border align texwidth texfont plottype/;
+    border align texwidth texfont plottype lmargin rmargin tmargin bmargin 
+    major_ticscale minor_ticscale/;
+
+my $margin_choices = ['default',
+                      qw{0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20}];
 
 my %gnuplot_defaults = 
     (
@@ -218,6 +222,48 @@
 	 edit_type   => 'choice',
          choices     => ['Cartesian','Polar']
          },
+     lmargin   => {
+	 default     => 'default',
+	 test        => sub {$_[0]=~/^(default|\d+)$/},
+	 description => 'Left margin width (pts):',
+	 edit_type   => 'choice',
+         choices     => $margin_choices,
+         },
+     rmargin   => {
+	 default     => 'default',
+	 test        => sub {$_[0]=~/^(default|\d+)$/},
+	 description => 'Right margin width (pts):',
+	 edit_type   => 'choice',
+         choices     => $margin_choices,
+         },
+     tmargin   => {
+	 default     => 'default',
+	 test        => sub {$_[0]=~/^(default|\d+)$/},
+	 description => 'Top margin width (pts):',
+	 edit_type   => 'choice',
+         choices     => $margin_choices,
+         },
+     bmargin   => {
+	 default     => 'default',
+	 test        => sub {$_[0]=~/^(default|\d+)$/},
+	 description => 'Bottm margin width (pts):',
+	 edit_type   => 'choice',
+         choices     => $margin_choices,
+         },
+     major_ticscale  => {
+         default     => '1',
+         test        => $real_test,
+         description => 'Size of major tic marks (plot coordinates)',
+         edit_type   => 'entry',
+         size        => '5'
+         },
+     minor_ticscale  => {
+         default     => '0.5',
+         test        => $real_test,
+         description => 'Size of minor tic mark (plot coordinates)',
+         edit_type   => 'entry',
+         size        => '5'
+         },
      );
 
 my %key_defaults = 
@@ -1002,6 +1048,22 @@
     } else {
         # Assume Cartesian
     }
+    # margin
+    if (lc($plot{'lmargin'}) ne 'default') {
+        $gnuplot_input .= 'set lmargin '.$plot{'lmargin'}.$/;
+    }
+    if (lc($plot{'rmargin'}) ne 'default') {
+        $gnuplot_input .= 'set rmargin '.$plot{'rmargin'}.$/;
+    }
+    if (lc($plot{'tmargin'}) ne 'default') {
+        $gnuplot_input .= 'set tmargin '.$plot{'tmargin'}.$/;
+    }
+    if (lc($plot{'bmargin'}) ne 'default') {
+        $gnuplot_input .= 'set bmargin '.$plot{'bmargin'}.$/;
+    }
+    # tic scales
+    $gnuplot_input .= 'set ticscale '.
+        $plot{'major_ticscale'}.' '.$plot{'minor_ticscale'}.$/;
     # grid
     $gnuplot_input .= 'set grid'.$/ if ($plot{'grid'} eq 'on');
     # border