version 1.39, 2002/01/11 16:34:06
|
version 1.40, 2002/01/15 16:21:39
|
Line 350 sub end_plot {
|
Line 350 sub end_plot {
|
my $filename = $ENV{'user.name'}.'_'.$ENV{'user.domain'}. |
my $filename = $ENV{'user.name'}.'_'.$ENV{'user.domain'}. |
'_'.time.'_'.$$.int(rand(1000)).'_plot.data'; |
'_'.time.'_'.$$.int(rand(1000)).'_plot.data'; |
## Write the plot description to the file |
## Write the plot description to the file |
my $fh=Apache::File->new(">$tmpdir$filename"); |
&write_gnuplot_file($tmpdir,$filename); |
print $fh &write_gnuplot_file(); |
|
close($fh); |
|
## return image tag for the plot |
## return image tag for the plot |
$result .= <<"ENDIMAGE"; |
$result .= <<"ENDIMAGE"; |
<img src = "/cgi-bin/plot.gif?$filename" |
<img src = "/cgi-bin/plot.gif?$filename" |
Line 619 sub start_data {
|
Line 617 sub start_data {
|
delete($curves[-1]->{'function'}); |
delete($curves[-1]->{'function'}); |
} |
} |
my $datatext = &Apache::lonxml::get_all_text("/data",$$parser[-1]); |
my $datatext = &Apache::lonxml::get_all_text("/data",$$parser[-1]); |
|
# Deal with cases where we're given an array... |
|
if ($datatext =~ /^\@/) { |
|
$datatext = &Apache::run::run('return "'.$datatext.'"', |
|
$safeeval,1); |
|
} |
$datatext =~ s/\s+/ /g; |
$datatext =~ s/\s+/ /g; |
# Need to do some error checking on the @data array - |
# Need to do some error checking on the @data array - |
# make sure it's all numbers and make sure each array |
# make sure it's all numbers and make sure each array |
Line 743 sub get_attributes{
|
Line 746 sub get_attributes{
|
} |
} |
return ; |
return ; |
} |
} |
|
|
##------------------------------------------------------- write_gnuplot_file |
##------------------------------------------------------- write_gnuplot_file |
sub write_gnuplot_file { |
sub write_gnuplot_file { |
|
my ($tmpdir,$filename)= @_; |
my $gnuplot_input = ''; |
my $gnuplot_input = ''; |
my $curve; |
my $curve; |
# Collect all the colors |
# Collect all the colors |
Line 795 sub write_gnuplot_file {
|
Line 800 sub write_gnuplot_file {
|
} |
} |
# curves |
# curves |
$gnuplot_input .= 'plot '; |
$gnuplot_input .= 'plot '; |
my $datatext = ''; |
|
for (my $i = 0;$i<=$#curves;$i++) { |
for (my $i = 0;$i<=$#curves;$i++) { |
$curve = $curves[$i]; |
$curve = $curves[$i]; |
$gnuplot_input.= ', ' if ($i > 0); |
$gnuplot_input.= ', ' if ($i > 0); |
Line 805 sub write_gnuplot_file {
|
Line 809 sub write_gnuplot_file {
|
$curve->{'name'}.'" with '. |
$curve->{'name'}.'" with '. |
$curve->{'linestyle'}; |
$curve->{'linestyle'}; |
} elsif (exists($curve->{'data'})) { |
} elsif (exists($curve->{'data'})) { |
$gnuplot_input.= '\'-\' title "'. |
# Store data values in $datatext |
$curve->{'name'}.'" with '. |
my $datatext = ''; |
$curve->{'linestyle'}; |
# get new filename |
|
my $datafilename = "$tmpdir/$filename.$i"; |
|
my $fh=Apache::File->new(">$datafilename"); |
|
# Compile data |
my @Data = @{$curve->{'data'}}; |
my @Data = @{$curve->{'data'}}; |
my @Data0 = @{$Data[0]}; |
my @Data0 = @{$Data[0]}; |
for (my $i =0; $i<=$#Data0; $i++) { |
for (my $i =0; $i<=$#Data0; $i++) { |
Line 817 sub write_gnuplot_file {
|
Line 824 sub write_gnuplot_file {
|
} |
} |
$datatext .= $/; |
$datatext .= $/; |
} |
} |
$datatext .=$/; |
# write file |
|
print $fh $datatext; |
|
close ($fh); |
|
# generate gnuplot text |
|
$gnuplot_input.= '"'.$datafilename.'" title "'. |
|
$curve->{'name'}.'" with '. |
|
$curve->{'linestyle'}; |
} |
} |
} |
} |
$gnuplot_input .= $/.$datatext; |
# Write the output to a file. |
return $gnuplot_input; |
my $fh=Apache::File->new(">$tmpdir$filename"); |
|
print $fh $gnuplot_input; |
|
close($fh); |
|
# That's all folks. |
|
return ; |
} |
} |
|
|
#---------------------------------------------- check_inputs |
#---------------------------------------------- check_inputs |