--- loncom/xml/lonplot.pm 2003/06/10 18:46:02 1.85 +++ loncom/xml/lonplot.pm 2003/09/10 13:50:29 1.88 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Dynamic plot # -# $Id: lonplot.pm,v 1.85 2003/06/10 18:46:02 matthew Exp $ +# $Id: lonplot.pm,v 1.88 2003/09/10 13:50:29 sakharuk Exp $ # # Copyright Michigan State University Board of Trustees # @@ -113,7 +113,7 @@ my $words_test = sub {$_[0]=~s/\s+/ ################################################################### my @gnuplot_edit_order = qw/alttag bgcolor fgcolor height width font transparent grid samples - border align texwidth/; + border align texwidth plottype/; my $gnuplot_help_text = <<"ENDPLOTHELP";

@@ -230,6 +230,13 @@ my %gnuplot_defaults = edit_type => 'entry', size => '5' }, + plottype => { + default => 'Cartesian', + test => sub {$_[0]=~/^(Polar|Cartesian)$/}, + description => 'Plot type:', + edit_type => 'choice', + choices => ['Polar','Cartesian'] + }, ); my %key_defaults = @@ -970,8 +977,13 @@ sub set_defaults { sub get_attributes{ my ($values,$defaults,$parstack,$safeeval,$tag) = @_; foreach my $attr (keys(%{$defaults})) { - $values->{$attr} = - &Apache::lonxml::get_param($attr,$parstack,$safeeval); + if ($attr eq 'texwidth') { + $values->{$attr} = + &Apache::lonxml::get_param($attr,$parstack,$safeeval,undef,1); + } else { + $values->{$attr} = + &Apache::lonxml::get_param($attr,$parstack,$safeeval); + } if ($values->{$attr} eq '' | !defined($values->{$attr})) { $values->{$attr} = $defaults->{$attr}->{'default'}; next; @@ -1012,10 +1024,16 @@ sub write_gnuplot_file { # set output $gnuplot_input .= "set output\n"; } elsif ($target eq 'tex') { - $gnuplot_input .= "set term postscript eps monochrome solid\n"; + $gnuplot_input .= "set term postscript eps monochrome solid \"Helvetica\" 25 \n"; $gnuplot_input .= "set output \"/home/httpd/perl/tmp/". &Apache::lonnet::unescape($filename).".eps\"\n"; } + # cartesian or polar? + if (lc($plot{'plottype'}) eq 'polar') { + $gnuplot_input .= 'set polar'.$/; + } else { + # Assume Cartesian + } # grid $gnuplot_input .= 'set grid'.$/ if ($plot{'grid'} eq 'on'); # border @@ -1026,9 +1044,9 @@ sub write_gnuplot_file { $gnuplot_input .= "set samples $plot{'samples'}\n"; # title, xlabel, ylabel # titles - $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)); + $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)); # tics if (%xtics) { $gnuplot_input .= "set xtics $xtics{'location'} "; @@ -1063,7 +1081,7 @@ sub write_gnuplot_file { my $label; foreach $label (@labels) { $gnuplot_input .= 'set label "'.$label->{'text'}.'" at '. - $label->{'xpos'}.','.$label->{'ypos'}.' '.$label->{'justify'}.$/ ; + $label->{'xpos'}.','.$label->{'ypos'}.' '.$label->{'justify'}.' font "Helvetica,25pt"'.$/ ; } if ($target eq 'tex') { $gnuplot_input .="set size 1,".$plot{'height'}/$plot{'width'}*1.38;