--- loncom/xml/lonplot.pm 2004/09/09 19:48:21 1.102 +++ loncom/xml/lonplot.pm 2005/04/07 06:56:27 1.106 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Dynamic plot # -# $Id: lonplot.pm,v 1.102 2004/09/09 19:48:21 albertel Exp $ +# $Id: lonplot.pm,v 1.106 2005/04/07 06:56:27 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -35,6 +35,7 @@ use Apache::File; use Apache::response; use Apache::lonxml; use Apache::edit; +use Apache::lonnet; use vars qw/$weboutputformat $versionstring/; @@ -119,11 +120,10 @@ my $words_test = sub {$_[0]=~s/\s+/ ################################################################### my @gnuplot_edit_order = qw/alttag bgcolor fgcolor height width font transparent grid samples - border align texwidth texfont plottype lmargin rmargin tmargin bmargin - major_ticscale minor_ticscale/; + border align texwidth texfont plotcolor 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 $margin_choices = ['default',0..20]; my %gnuplot_defaults = ( @@ -215,6 +215,13 @@ my %gnuplot_defaults = edit_type => 'choice', choices => [qw/8 10 12 14 16 18 20 22 24 26 28 30 32 34 36/], }, + plotcolor => { + default => 'monochrome', + test => sub {$_[0]=~/^(monochrome|color|colour)$/}, + description => 'Color setting for printing:', + edit_type => 'choice', + choices => [qw/monochrome color colour/], + }, plottype => { default => 'Cartesian', test => sub {$_[0]=~/^(Polar|Cartesian)$/}, @@ -246,7 +253,7 @@ my %gnuplot_defaults = bmargin => { default => 'default', test => sub {$_[0]=~/^(default|\d+)$/}, - description => 'Bottm margin width (pts):', + description => 'Bottom margin width (pts):', edit_type => 'choice', choices => $margin_choices, }, @@ -507,7 +514,7 @@ sub end_gnuplot { ## ## Determine filename my $tmpdir = '/home/httpd/perl/tmp/'; - my $filename = $ENV{'user.name'}.'_'.$ENV{'user.domain'}. + my $filename = $env{'user.name'}.'_'.$env{'user.domain'}. '_'.time.'_'.$$.$randnumber.'_plot'; ## Write the plot description to the file &write_gnuplot_file($tmpdir,$filename,$target); @@ -1030,7 +1037,7 @@ sub write_gnuplot_file { } # set term if ($target eq 'web') { - $gnuplot_input .= 'set term gif '; + $gnuplot_input .= 'set term '.$weboutputformat .' '; $gnuplot_input .= 'transparent ' if ($plot{'transparent'} eq 'on'); $gnuplot_input .= $plot{'font'} . ' '; $gnuplot_input .= 'size '.$plot{'width'}.','.$plot{'height'}.' '; @@ -1038,7 +1045,7 @@ sub write_gnuplot_file { # set output $gnuplot_input .= "set output\n"; } elsif ($target eq 'tex') { - $gnuplot_input .= "set term postscript eps monochrome solid \"Helvetica\" $pt \n"; + $gnuplot_input .= "set term postscript eps $plot{'plotcolor'} solid \"Helvetica\" $pt \n"; $gnuplot_input .= "set output \"/home/httpd/perl/tmp/". &Apache::lonnet::unescape($filename).".eps\"\n"; } @@ -1123,7 +1130,11 @@ sub write_gnuplot_file { my $label; foreach $label (@labels) { $gnuplot_input .= 'set label "'.$label->{'text'}.'" at '. - $label->{'xpos'}.','.$label->{'ypos'}.' '.$label->{'justify'}.' font "Helvetica,'.$pt.'pt"'.$/ ; + $label->{'xpos'}.','.$label->{'ypos'}.' '.$label->{'justify'}; + if ($target eq 'tex') { + $gnuplot_input .=' font "Helvetica,'.$pt.'pt"' ; + } + $gnuplot_input .= $/; } if ($target eq 'tex') { $gnuplot_input .="set size 1,".$plot{'height'}/$plot{'width'}*1.38;