--- loncom/xml/lonplot.pm 2003/09/10 13:50:29 1.88 +++ loncom/xml/lonplot.pm 2003/09/19 17:53:03 1.89 @@ -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 %label_defaults = } ); -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 @@ my %tic_defaults = 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 %curve_defaults = 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 @@ sub write_gnuplot_file { $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 @@ sub write_gnuplot_file { $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 @@ sub write_gnuplot_file { $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) {