[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) {