version 1.102, 2004/09/09 19:48:21
|
version 1.106, 2005/04/07 06:56:27
|
Line 35 use Apache::File;
|
Line 35 use Apache::File;
|
use Apache::response; |
use Apache::response; |
use Apache::lonxml; |
use Apache::lonxml; |
use Apache::edit; |
use Apache::edit; |
|
use Apache::lonnet; |
|
|
use vars qw/$weboutputformat $versionstring/; |
use vars qw/$weboutputformat $versionstring/; |
|
|
Line 119 my $words_test = sub {$_[0]=~s/\s+/
|
Line 120 my $words_test = sub {$_[0]=~s/\s+/
|
################################################################### |
################################################################### |
my @gnuplot_edit_order = |
my @gnuplot_edit_order = |
qw/alttag bgcolor fgcolor height width font transparent grid samples |
qw/alttag bgcolor fgcolor height width font transparent grid samples |
border align texwidth texfont plottype lmargin rmargin tmargin bmargin |
border align texwidth texfont plotcolor plottype lmargin rmargin tmargin |
major_ticscale minor_ticscale/; |
bmargin major_ticscale minor_ticscale/; |
|
|
my $margin_choices = ['default', |
my $margin_choices = ['default',0..20]; |
qw{0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20}]; |
|
|
|
my %gnuplot_defaults = |
my %gnuplot_defaults = |
( |
( |
Line 215 my %gnuplot_defaults =
|
Line 215 my %gnuplot_defaults =
|
edit_type => 'choice', |
edit_type => 'choice', |
choices => [qw/8 10 12 14 16 18 20 22 24 26 28 30 32 34 36/], |
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 => { |
plottype => { |
default => 'Cartesian', |
default => 'Cartesian', |
test => sub {$_[0]=~/^(Polar|Cartesian)$/}, |
test => sub {$_[0]=~/^(Polar|Cartesian)$/}, |
Line 246 my %gnuplot_defaults =
|
Line 253 my %gnuplot_defaults =
|
bmargin => { |
bmargin => { |
default => 'default', |
default => 'default', |
test => sub {$_[0]=~/^(default|\d+)$/}, |
test => sub {$_[0]=~/^(default|\d+)$/}, |
description => 'Bottm margin width (pts):', |
description => 'Bottom margin width (pts):', |
edit_type => 'choice', |
edit_type => 'choice', |
choices => $margin_choices, |
choices => $margin_choices, |
}, |
}, |
Line 507 sub end_gnuplot {
|
Line 514 sub end_gnuplot {
|
## |
## |
## Determine filename |
## Determine filename |
my $tmpdir = '/home/httpd/perl/tmp/'; |
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'; |
'_'.time.'_'.$$.$randnumber.'_plot'; |
## Write the plot description to the file |
## Write the plot description to the file |
&write_gnuplot_file($tmpdir,$filename,$target); |
&write_gnuplot_file($tmpdir,$filename,$target); |
Line 1030 sub write_gnuplot_file {
|
Line 1037 sub write_gnuplot_file {
|
} |
} |
# set term |
# set term |
if ($target eq 'web') { |
if ($target eq 'web') { |
$gnuplot_input .= 'set term gif '; |
$gnuplot_input .= 'set term '.$weboutputformat .' '; |
$gnuplot_input .= 'transparent ' if ($plot{'transparent'} eq 'on'); |
$gnuplot_input .= 'transparent ' if ($plot{'transparent'} eq 'on'); |
$gnuplot_input .= $plot{'font'} . ' '; |
$gnuplot_input .= $plot{'font'} . ' '; |
$gnuplot_input .= 'size '.$plot{'width'}.','.$plot{'height'}.' '; |
$gnuplot_input .= 'size '.$plot{'width'}.','.$plot{'height'}.' '; |
Line 1038 sub write_gnuplot_file {
|
Line 1045 sub write_gnuplot_file {
|
# set output |
# set output |
$gnuplot_input .= "set output\n"; |
$gnuplot_input .= "set output\n"; |
} elsif ($target eq 'tex') { |
} 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/". |
$gnuplot_input .= "set output \"/home/httpd/perl/tmp/". |
&Apache::lonnet::unescape($filename).".eps\"\n"; |
&Apache::lonnet::unescape($filename).".eps\"\n"; |
} |
} |
Line 1123 sub write_gnuplot_file {
|
Line 1130 sub write_gnuplot_file {
|
my $label; |
my $label; |
foreach $label (@labels) { |
foreach $label (@labels) { |
$gnuplot_input .= 'set label "'.$label->{'text'}.'" at '. |
$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') { |
if ($target eq 'tex') { |
$gnuplot_input .="set size 1,".$plot{'height'}/$plot{'width'}*1.38; |
$gnuplot_input .="set size 1,".$plot{'height'}/$plot{'width'}*1.38; |