--- loncom/xml/lonplot.pm 2002/04/25 20:39:50 1.72 +++ loncom/xml/lonplot.pm 2002/06/13 17:58:47 1.77 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Dynamic plot # -# $Id: lonplot.pm,v 1.72 2002/04/25 20:39:50 matthew Exp $ +# $Id: lonplot.pm,v 1.77 2002/06/13 17:58:47 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -112,7 +112,7 @@ my $words_test = sub {$_[0]=~s/\s+/ ## ## ################################################################### my @gnuplot_edit_order = - qw/alttag bgcolor fgcolor height width font transparent grid border align/; + qw/alttag bgcolor fgcolor height width font transparent grid samples border align/; my $gnuplot_help_text = <<"ENDPLOTHELP";
@@ -208,6 +208,13 @@ my %gnuplot_defaults = edit_type => 'choice', choices => ['small','medium','large'] }, + samples => { + default => '100', + test => $int_test, + description => 'Number of samples for non-data plots', + edit_type => 'choice', + choices => ['100','200','500','1000','2000','5000'] + }, align => { default => 'center', test => sub {$_[0]=~/^(left|right|center)$/}, @@ -499,7 +506,7 @@ sub end_gnuplot { ENDIMAGE } elsif ($target eq 'tex') { &Apache::lonnet::ssi("/cgi-bin/plot.gif?file=$filename.data&output=eps"); - $result = '\\\\ \graphicspath{/home/httpd/perl/tmp/}\fbox{\includegraphics[width=9.0 cm]{'.&Apache::lonnet::unescape($filename).'.eps}} \\\\'; + $result = '\graphicspath{{/home/httpd/perl/tmp/}}\fbox{\includegraphics{'.&Apache::lonnet::unescape($filename).'.eps}}'; } } elsif ($target eq 'edit') { $result.=&Apache::edit::tag_end($target,$token); @@ -990,7 +997,7 @@ sub write_gnuplot_file { # set output $gnuplot_input .= "set output\n"; } elsif ($target eq 'tex') { - $gnuplot_input .= "set term postscript eps monochrome\n"; + $gnuplot_input .= "set term postscript eps monochrome solid\n"; $gnuplot_input .= "set output \"/home/httpd/perl/tmp/". &Apache::lonnet::unescape($filename).".eps\"\n"; } @@ -1000,6 +1007,8 @@ sub write_gnuplot_file { $gnuplot_input .= ($plot{'border'} eq 'on'? 'set border'.$/ : 'set noborder'.$/ ); + # sampling rate for non-data curves + $gnuplot_input .= "set samples $plot{'samples'}\n"; # title, xlabel, ylabel # titles $gnuplot_input .= "set title \"$title\"\n" if (defined($title)) ; @@ -1041,6 +1050,10 @@ sub write_gnuplot_file { $gnuplot_input .= 'set label "'.$label->{'text'}.'" at '. $label->{'xpos'}.','.$label->{'ypos'}.' '.$label->{'justify'}.$/ ; } + if ($target eq 'tex') { + $gnuplot_input .="set size 1,".$plot{'height'}/$plot{'width'}*1.38; + $gnuplot_input .="\n"; + } # curves $gnuplot_input .= 'plot '; for (my $i = 0;$i<=$#curves;$i++) { @@ -1051,7 +1064,7 @@ sub write_gnuplot_file { $curve->{'function'}.' title "'. $curve->{'name'}.'" with '. $curve->{'linestyle'}; - $gnuplot_input.= ' linewidth 2 ' if ($target eq 'tex'); + $gnuplot_input.= ' linewidth 4 ' if ($target eq 'tex'); if (($curve->{'linestyle'} eq 'points') || ($curve->{'linestyle'} eq 'linespoints') || ($curve->{'linestyle'} eq 'errorbars') || @@ -1084,7 +1097,7 @@ sub write_gnuplot_file { $gnuplot_input.= '"'.$datafilename.'" title "'. $curve->{'name'}.'" with '. $curve->{'linestyle'}; - $gnuplot_input.= ' linewidth 2 ' if ($target eq 'tex'); + $gnuplot_input.= ' linewidth 4 ' if ($target eq 'tex'); if (($curve->{'linestyle'} eq 'points') || ($curve->{'linestyle'} eq 'linespoints') || ($curve->{'linestyle'} eq 'errorbars') ||