version 1.56, 2002/03/14 19:02:30
|
version 1.66, 2002/04/24 16:38:40
|
Line 91 my %linestyles =
|
Line 91 my %linestyles =
|
yerrorbars => [3,4], |
yerrorbars => [3,4], |
xyerrorbars => [4,6], |
xyerrorbars => [4,6], |
boxes => 3, |
boxes => 3, |
# boxerrorbars => [3,4,5], |
|
# boxxyerrorbars => [4,6,7], |
|
# financebars => 5, |
|
# candlesticks => 5, |
|
vector => 4 |
vector => 4 |
); |
); |
|
|
my $int_test = sub {$_[0]=~s/\s+//g;$_[0]=~/^\d+$/}; |
my $int_test = sub {$_[0]=~s/\s+//g;$_[0]=~/^\d+$/}; |
my $real_test = |
my $real_test = |
sub {$_[0]=~s/\s+//g;$_[0]=~/^[+-]?\d*\.?\d*([eE][+-]\d+)?$/}; |
sub {$_[0]=~s/\s+//g;$_[0]=~/^[+-]?\d*\.?\d*([eE][+-]\d+)?$/}; |
|
my $pos_real_test = |
|
sub {$_[0]=~s/\s+//g;$_[0]=~/^[+]?\d*\.?\d*([eE][+-]\d+)?$/}; |
my $color_test = sub {$_[0]=~s/\s+//g;$_[0]=~/^x[\da-f]{6}$/}; |
my $color_test = sub {$_[0]=~s/\s+//g;$_[0]=~/^x[\da-f]{6}$/}; |
my $onoff_test = sub {$_[0]=~/^(on|off)$/}; |
my $onoff_test = sub {$_[0]=~/^(on|off)$/}; |
my $key_pos_test = sub {$_[0]=~/^(top|bottom|right|left|outside|below| )+$/}; |
my $key_pos_test = sub {$_[0]=~/^(top|bottom|right|left|outside|below| )+$/}; |
Line 114 my $words_test = sub {$_[0]=~s/\s+/
|
Line 112 my $words_test = sub {$_[0]=~s/\s+/
|
## ## |
## ## |
################################################################### |
################################################################### |
my @gnuplot_edit_order = |
my @gnuplot_edit_order = |
qw/bgcolor fgcolor height width font transparent grid border align/; |
qw/alttag bgcolor fgcolor height width font transparent grid border align/; |
|
|
my $gnuplot_help_text = <<"ENDPLOTHELP"; |
my $gnuplot_help_text = <<"ENDPLOTHELP"; |
<p> |
<p> |
Line 150 ENDPLOTHELP
|
Line 148 ENDPLOTHELP
|
|
|
my %gnuplot_defaults = |
my %gnuplot_defaults = |
( |
( |
|
alttag => { |
|
default => 'dynamically generated plot', |
|
test => $words_test, |
|
description => 'brief description of the plot', |
|
edit_type => 'entry', |
|
size => '40' |
|
}, |
height => { |
height => { |
default => 200, |
default => 300, |
test => $int_test, |
test => $int_test, |
description => 'height of image (pixels)', |
description => 'height of image (pixels)', |
edit_type => 'entry', |
edit_type => 'entry', |
size => '10' |
size => '10' |
}, |
}, |
width => { |
width => { |
default => 200, |
default => 400, |
test => $int_test, |
test => $int_test, |
description => 'width of image (pixels)', |
description => 'width of image (pixels)', |
edit_type => 'entry', |
edit_type => 'entry', |
Line 185 my %gnuplot_defaults =
|
Line 190 my %gnuplot_defaults =
|
edit_type => 'onoff' |
edit_type => 'onoff' |
}, |
}, |
grid => { |
grid => { |
default => 'off', |
default => 'on', |
test => $onoff_test, |
test => $onoff_test, |
description => 'Display grid', |
description => 'Display grid', |
edit_type => 'onoff' |
edit_type => 'onoff' |
Line 204 my %gnuplot_defaults =
|
Line 209 my %gnuplot_defaults =
|
choices => ['small','medium','large'] |
choices => ['small','medium','large'] |
}, |
}, |
align => { |
align => { |
default => 'left', |
default => 'center', |
test => sub {$_[0]=~/^(left|right|center)$/}, |
test => sub {$_[0]=~/^(left|right|center)$/}, |
description => 'alignment for image in html', |
description => 'alignment for image in html', |
edit_type => 'choice', |
edit_type => 'choice', |
Line 301 my %tic_defaults =
|
Line 306 my %tic_defaults =
|
}, |
}, |
); |
); |
|
|
|
my @axis_edit_order = ('color','xmin','xmax','ymin','ymax'); |
my %axis_defaults = |
my %axis_defaults = |
( |
( |
color => { |
color => { |
Line 362 first tag will be the X data and the sec
|
Line 368 first tag will be the X data and the sec
|
</p> |
</p> |
<dt> Curve Function |
<dt> Curve Function |
<dd> The <b>function</b> tag allows you to specify the curve to be |
<dd> The <b>function</b> tag allows you to specify the curve to be |
plotted as a formula that gnuplot can understand. Be careful using this |
plotted as a formula that gnuplot can understand. <b>Be careful using this |
tag - it is surprisingly easy to give gnuplot a function it cannot deal |
tag.</b> It is surprisingly easy to give gnuplot a function it cannot deal |
with properly. Be explicit: 2*sin(2*3.141592*x/4) will work but |
with properly. Be explicit: 2*sin(2*3.141592*x/4) will work but |
2sin(2*3.141592x/4) will not. If you do not receive any errors in the |
2sin(2*3.141592x/4) will not. If you do not receive any errors in the |
gnuplot data but still do not have an image produced, it is likely there |
gnuplot data but still do not have an image produced, it is likely there |
Line 371 is an error in your <b>function</b> tag.
|
Line 377 is an error in your <b>function</b> tag.
|
</dl> |
</dl> |
ENDCURVEHELP |
ENDCURVEHELP |
|
|
|
my @curve_edit_order = ('color','name','linestyle','pointtype','pointsize'); |
|
|
my %curve_defaults = |
my %curve_defaults = |
( |
( |
color => { |
color => { |
Line 393 my %curve_defaults =
|
Line 401 my %curve_defaults =
|
description => 'Line style', |
description => 'Line style', |
edit_type => 'choice', |
edit_type => 'choice', |
choices => [keys(%linestyles)] |
choices => [keys(%linestyles)] |
} |
}, |
|
# gnuplots term=gif driver does not handle linewidth :( |
|
# linewidth => { |
|
# default => 1, |
|
# test => $int_test, |
|
# description => 'Line width (may not apply to all line styles)', |
|
# edit_type => 'choice', |
|
# choices => [1,2,3,4,5,6,7,8,9,10] |
|
# }, |
|
pointsize => { |
|
default => 1, |
|
test => $pos_real_test, |
|
description => 'point size (may not apply to all line styles)', |
|
edit_type => 'entry', |
|
size => '5' |
|
}, |
|
pointtype => { |
|
default => 1, |
|
test => $int_test, |
|
description => 'point type (may not apply to all line styles)', |
|
edit_type => 'choice', |
|
choices => [0,1,2,3,4,5,6] |
|
} |
); |
); |
|
|
################################################################### |
################################################################### |
Line 416 sub start_gnuplot {
|
Line 446 sub start_gnuplot {
|
'xtics','ytics')); |
'xtics','ytics')); |
push (@Apache::lonxml::namespace,'lonplot'); |
push (@Apache::lonxml::namespace,'lonplot'); |
if ($target eq 'web' || $target eq 'tex') { |
if ($target eq 'web' || $target eq 'tex') { |
my $inside = &Apache::lonxml::get_all_text("/gnuplot",$$parser[-1]); |
|
$inside=&Apache::run::evaluate($inside,$safeeval,$$parstack[-1]); |
|
&Apache::lonxml::newparser($parser,\$inside); |
|
&get_attributes(\%plot,\%gnuplot_defaults,$parstack,$safeeval, |
&get_attributes(\%plot,\%gnuplot_defaults,$parstack,$safeeval, |
$tagstack->[-1]); |
$tagstack->[-1]); |
} elsif ($target eq 'edit') { |
} elsif ($target eq 'edit') { |
Line 465 sub end_gnuplot {
|
Line 492 sub end_gnuplot {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$result .= <<"ENDIMAGE"; |
$result .= <<"ENDIMAGE"; |
<img src = "/cgi-bin/plot.gif?file=$filename&output=gif" |
<img src = "/cgi-bin/plot.gif?file=$filename&output=gif" |
width = "$plot{'width'}" |
width = "$plot{'width'}" |
height = "$plot{'height'}" |
height = "$plot{'height'}" |
align = "$plot{'align'}" |
align = "$plot{'align'}" |
alt = "image should be /cgi-bin/plot.gif?$filename" /> |
alt = "$plot{'alttag'}" /> |
ENDIMAGE |
ENDIMAGE |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
&Apache::lonnet::ssi('cgi-bin/plot.gif?file=$filename'. |
&Apache::lonnet::ssi('cgi-bin/plot.gif?file=$filename'. |
Line 581 sub start_title {
|
Line 608 sub start_title {
|
my $result=''; |
my $result=''; |
if ($target eq 'web' || $target eq 'tex') { |
if ($target eq 'web' || $target eq 'tex') { |
$title = &Apache::lonxml::get_all_text("/title",$$parser[-1]); |
$title = &Apache::lonxml::get_all_text("/title",$$parser[-1]); |
|
$title=&Apache::run::evaluate($title,$safeeval,$$parstack[-1]); |
$title =~ s/\n/ /g; |
$title =~ s/\n/ /g; |
if (length($title) > $max_str_len) { |
if (length($title) > $max_str_len) { |
$title = substr($title,0,$max_str_len); |
$title = substr($title,0,$max_str_len); |
Line 590 sub start_title {
|
Line 618 sub start_title {
|
my $text=&Apache::lonxml::get_all_text("/title",$$parser[-1]); |
my $text=&Apache::lonxml::get_all_text("/title",$$parser[-1]); |
$result.=&Apache::edit::end_row(). |
$result.=&Apache::edit::end_row(). |
&Apache::edit::start_spanning_row(). |
&Apache::edit::start_spanning_row(). |
&Apache::edit::editfield('',$text,'',60,1); |
&Apache::edit::editline('',$text,'',60); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
my $text=$$parser[-1]->get_text("/title"); |
my $text=$$parser[-1]->get_text("/title"); |
$result.=&Apache::edit::rebuild_tag($token); |
$result.=&Apache::edit::rebuild_tag($token); |
Line 614 sub start_xlabel {
|
Line 642 sub start_xlabel {
|
my $result=''; |
my $result=''; |
if ($target eq 'web' || $target eq 'tex') { |
if ($target eq 'web' || $target eq 'tex') { |
$xlabel = &Apache::lonxml::get_all_text("/xlabel",$$parser[-1]); |
$xlabel = &Apache::lonxml::get_all_text("/xlabel",$$parser[-1]); |
|
$xlabel=&Apache::run::evaluate($xlabel,$safeeval,$$parstack[-1]); |
$xlabel =~ s/\n/ /g; |
$xlabel =~ s/\n/ /g; |
if (length($xlabel) > $max_str_len) { |
if (length($xlabel) > $max_str_len) { |
$xlabel = substr($xlabel,0,$max_str_len); |
$xlabel = substr($xlabel,0,$max_str_len); |
Line 623 sub start_xlabel {
|
Line 652 sub start_xlabel {
|
my $text=&Apache::lonxml::get_all_text("/xlabel",$$parser[-1]); |
my $text=&Apache::lonxml::get_all_text("/xlabel",$$parser[-1]); |
$result.=&Apache::edit::end_row(). |
$result.=&Apache::edit::end_row(). |
&Apache::edit::start_spanning_row(). |
&Apache::edit::start_spanning_row(). |
&Apache::edit::editfield('',$text,'',60,1); |
&Apache::edit::editline('',$text,'',60); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
my $text=$$parser[-1]->get_text("/xlabel"); |
my $text=$$parser[-1]->get_text("/xlabel"); |
$result.=&Apache::edit::rebuild_tag($token); |
$result.=&Apache::edit::rebuild_tag($token); |
Line 648 sub start_ylabel {
|
Line 677 sub start_ylabel {
|
my $result=''; |
my $result=''; |
if ($target eq 'web' || $target eq 'tex') { |
if ($target eq 'web' || $target eq 'tex') { |
$ylabel = &Apache::lonxml::get_all_text("/ylabel",$$parser[-1]); |
$ylabel = &Apache::lonxml::get_all_text("/ylabel",$$parser[-1]); |
|
$ylabel = &Apache::run::evaluate($ylabel,$safeeval,$$parstack[-1]); |
$ylabel =~ s/\n/ /g; |
$ylabel =~ s/\n/ /g; |
if (length($ylabel) > $max_str_len) { |
if (length($ylabel) > $max_str_len) { |
$ylabel = substr($ylabel,0,$max_str_len); |
$ylabel = substr($ylabel,0,$max_str_len); |
Line 657 sub start_ylabel {
|
Line 687 sub start_ylabel {
|
my $text = &Apache::lonxml::get_all_text("/ylabel",$$parser[-1]); |
my $text = &Apache::lonxml::get_all_text("/ylabel",$$parser[-1]); |
$result .= &Apache::edit::end_row(). |
$result .= &Apache::edit::end_row(). |
&Apache::edit::start_spanning_row(). |
&Apache::edit::start_spanning_row(). |
&Apache::edit::editfield('',$text,'',60,1); |
&Apache::edit::editline('',$text,'',60); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
my $text=$$parser[-1]->get_text("/ylabel"); |
my $text=$$parser[-1]->get_text("/ylabel"); |
$result.=&Apache::edit::rebuild_tag($token); |
$result.=&Apache::edit::rebuild_tag($token); |
Line 685 sub start_label {
|
Line 715 sub start_label {
|
&get_attributes(\%label,\%label_defaults,$parstack,$safeeval, |
&get_attributes(\%label,\%label_defaults,$parstack,$safeeval, |
$tagstack->[-1]); |
$tagstack->[-1]); |
my $text = &Apache::lonxml::get_all_text("/label",$$parser[-1]); |
my $text = &Apache::lonxml::get_all_text("/label",$$parser[-1]); |
|
$text = &Apache::run::evaluate($text,$safeeval,$$parstack[-1]); |
$text =~ s/\n/ /g; |
$text =~ s/\n/ /g; |
$text = substr($text,0,$max_str_len) if (length($text) > $max_str_len); |
$text = substr($text,0,$max_str_len) if (length($text) > $max_str_len); |
$label{'text'} = $text; |
$label{'text'} = $text; |
Line 695 sub start_label {
|
Line 726 sub start_label {
|
my $text = &Apache::lonxml::get_all_text("/label",$$parser[-1]); |
my $text = &Apache::lonxml::get_all_text("/label",$$parser[-1]); |
$result .= &Apache::edit::end_row(). |
$result .= &Apache::edit::end_row(). |
&Apache::edit::start_spanning_row(). |
&Apache::edit::start_spanning_row(). |
&Apache::edit::editfield('',$text,'',60,1); |
&Apache::edit::editline('',$text,'',60); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
&Apache::edit::get_new_args |
&Apache::edit::get_new_args |
($token,$parstack,$safeeval,keys(%label_defaults)); |
($token,$parstack,$safeeval,keys(%label_defaults)); |
Line 730 sub start_curve {
|
Line 761 sub start_curve {
|
} elsif ($target eq 'edit') { |
} elsif ($target eq 'edit') { |
$result .= &Apache::edit::tag_start($target,$token,'Curve'); |
$result .= &Apache::edit::tag_start($target,$token,'Curve'); |
$result .= &help_win($curve_help_text); |
$result .= &help_win($curve_help_text); |
$result .= &edit_attributes($target,$token,\%curve_defaults); |
$result .= &edit_attributes($target,$token,\%curve_defaults, |
|
\@curve_edit_order); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
my $constructtag=&Apache::edit::get_new_args |
my $constructtag=&Apache::edit::get_new_args |
($token,$parstack,$safeeval,keys(%curve_defaults)); |
($token,$parstack,$safeeval,keys(%curve_defaults)); |
Line 763 sub start_function {
|
Line 795 sub start_function {
|
&Apache::lonxml::warning('Use of <function> precludes use of <data>. The <data> will be omitted in favor of the <function> declaration.'); |
&Apache::lonxml::warning('Use of <function> precludes use of <data>. The <data> will be omitted in favor of the <function> declaration.'); |
delete $curves[-1]->{'data'} ; |
delete $curves[-1]->{'data'} ; |
} |
} |
$curves[-1]->{'function'} = |
my $function = &Apache::lonxml::get_all_text("/function",$$parser[-1]); |
&Apache::lonxml::get_all_text("/function",$$parser[-1]); |
$function = &Apache::run::evaluate($function,$safeeval,$$parstack[-1]); |
|
$curves[-1]->{'function'} = $function; |
} elsif ($target eq 'edit') { |
} elsif ($target eq 'edit') { |
$result .= &Apache::edit::tag_start($target,$token,'Gnuplot compatible curve function'); |
$result .= &Apache::edit::tag_start($target,$token,'Gnuplot compatible curve function'); |
my $text = &Apache::lonxml::get_all_text("/function",$$parser[-1]); |
my $text = &Apache::lonxml::get_all_text("/function",$$parser[-1]); |
$result .= &Apache::edit::end_row(). |
$result .= &Apache::edit::end_row(). |
&Apache::edit::start_spanning_row(). |
&Apache::edit::start_spanning_row(). |
&Apache::edit::editfield('',$text,'',60,1); |
&Apache::edit::editline('',$text,'',60); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
$result.=&Apache::edit::rebuild_tag($token); |
$result.=&Apache::edit::rebuild_tag($token); |
my $text=$$parser[-1]->get_text("/function"); |
my $text=$$parser[-1]->get_text("/function"); |
Line 801 sub start_data {
|
Line 834 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]); |
|
$datatext=&Apache::run::evaluate($datatext,$safeeval,$$parstack[-1]); |
# Deal with cases where we're given an array... |
# Deal with cases where we're given an array... |
if ($datatext =~ /^\@/) { |
if ($datatext =~ /^\@/) { |
$datatext = &Apache::run::run('return "'.$datatext.'"', |
$datatext = &Apache::run::run('return "'.$datatext.'"', |
Line 845 sub start_data {
|
Line 879 sub start_data {
|
my $text = &Apache::lonxml::get_all_text("/data",$$parser[-1]); |
my $text = &Apache::lonxml::get_all_text("/data",$$parser[-1]); |
$result .= &Apache::edit::end_row(). |
$result .= &Apache::edit::end_row(). |
&Apache::edit::start_spanning_row(). |
&Apache::edit::start_spanning_row(). |
&Apache::edit::editfield('',$text,'',60,1); |
&Apache::edit::editline('',$text,'',60); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
$result.=&Apache::edit::rebuild_tag($token); |
$result.=&Apache::edit::rebuild_tag($token); |
my $text=$$parser[-1]->get_text("/data"); |
my $text=$$parser[-1]->get_text("/data"); |
Line 873 sub start_axis {
|
Line 907 sub start_axis {
|
$tagstack->[-1]); |
$tagstack->[-1]); |
} elsif ($target eq 'edit') { |
} elsif ($target eq 'edit') { |
$result .= &Apache::edit::tag_start($target,$token,'Plot Axes'); |
$result .= &Apache::edit::tag_start($target,$token,'Plot Axes'); |
$result .= &edit_attributes($target,$token,\%axis_defaults); |
$result .= &edit_attributes($target,$token,\%axis_defaults, |
|
\@axis_edit_order); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
my $constructtag=&Apache::edit::get_new_args |
my $constructtag=&Apache::edit::get_new_args |
($token,$parstack,$safeeval,keys(%axis_defaults)); |
($token,$parstack,$safeeval,keys(%axis_defaults)); |
Line 957 sub write_gnuplot_file {
|
Line 992 sub write_gnuplot_file {
|
$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\n"; |
$gnuplot_input .= "set term postscript eps monochrome\n"; |
$gnuplot_input .= "set output \"$filename.eps\"\n"; |
$gnuplot_input .= "set output \"/home/httpd/perl/tmp/$filename.eps\"\n"; |
} |
} |
# grid |
# grid |
$gnuplot_input .= 'set grid'.$/ if ($plot{'grid'} eq 'on'); |
$gnuplot_input .= 'set grid'.$/ if ($plot{'grid'} eq 'on'); |
Line 1015 sub write_gnuplot_file {
|
Line 1050 sub write_gnuplot_file {
|
$curve->{'function'}.' title "'. |
$curve->{'function'}.' title "'. |
$curve->{'name'}.'" with '. |
$curve->{'name'}.'" with '. |
$curve->{'linestyle'}; |
$curve->{'linestyle'}; |
|
# |
|
# gnuplot's term=gif driver does not handle linewidths :( |
|
# . ' linewidth '. $curve->{'linewidth'}; |
|
# |
|
if (($curve->{'linestyle'} eq 'points') || |
|
($curve->{'linestyle'} eq 'linespoints') || |
|
($curve->{'linestyle'} eq 'errorbars') || |
|
($curve->{'linestyle'} eq 'xerrorbars') || |
|
($curve->{'linestyle'} eq 'yerrorbars') || |
|
($curve->{'linestyle'} eq 'xyerrorbars')) { |
|
$gnuplot_input.=' pointtype '.$curve->{'pointtype'}; |
|
$gnuplot_input.=' pointsize '.$curve->{'pointsize'}; |
|
} |
} elsif (exists($curve->{'data'})) { |
} elsif (exists($curve->{'data'})) { |
# Store data values in $datatext |
# Store data values in $datatext |
my $datatext = ''; |
my $datatext = ''; |
Line 1038 sub write_gnuplot_file {
|
Line 1086 sub write_gnuplot_file {
|
$gnuplot_input.= '"'.$datafilename.'" title "'. |
$gnuplot_input.= '"'.$datafilename.'" title "'. |
$curve->{'name'}.'" with '. |
$curve->{'name'}.'" with '. |
$curve->{'linestyle'}; |
$curve->{'linestyle'}; |
|
if (($curve->{'linestyle'} eq 'points') || |
|
($curve->{'linestyle'} eq 'linespoints') || |
|
($curve->{'linestyle'} eq 'errorbars') || |
|
($curve->{'linestyle'} eq 'xerrorbars') || |
|
($curve->{'linestyle'} eq 'yerrorbars') || |
|
($curve->{'linestyle'} eq 'xyerrorbars')) { |
|
$gnuplot_input.=' pointtype '.$curve->{'pointtype'}; |
|
$gnuplot_input.=' pointsize '.$curve->{'pointsize'}; |
|
} |
} |
} |
} |
} |
# Write the output to a file. |
# Write the output to a file. |
Line 1111 sub edit_attributes {
|
Line 1168 sub edit_attributes {
|
sub insert_gnuplot { |
sub insert_gnuplot { |
my $result = ''; |
my $result = ''; |
# plot attributes |
# plot attributes |
$result .= "<gnuplot \n"; |
$result .= "\n<gnuplot "; |
foreach my $attr (keys(%gnuplot_defaults)) { |
foreach my $attr (keys(%gnuplot_defaults)) { |
$result .= " $attr=\"$gnuplot_defaults{$attr}->{'default'}\"\n"; |
$result .= "\n $attr=\"$gnuplot_defaults{$attr}->{'default'}\""; |
} |
} |
$result .= ">\n"; |
$result .= ">"; |
# Add the components (most are commented out for simplicity) |
# Add the components (most are commented out for simplicity) |
# $result .= &insert_key(); |
# $result .= &insert_key(); |
# $result .= &insert_axis(); |
# $result .= &insert_axis(); |
Line 1124 sub insert_gnuplot {
|
Line 1181 sub insert_gnuplot {
|
# $result .= &insert_ylabel(); |
# $result .= &insert_ylabel(); |
$result .= &insert_curve(); |
$result .= &insert_curve(); |
# close up the <gnuplot> |
# close up the <gnuplot> |
$result .= "</gnuplot>\n"; |
$result .= "\n</gnuplot>"; |
return $result; |
return $result; |
} |
} |
|
|
Line 1138 sub insert_xtics {
|
Line 1195 sub insert_xtics {
|
my $result; |
my $result; |
$result .= "\n <xtics "; |
$result .= "\n <xtics "; |
foreach my $attr (keys(%tic_defaults)) { |
foreach my $attr (keys(%tic_defaults)) { |
$result .= "$attr=\"$tic_defaults{$attr}->{'default'}\" "; |
$result .= "\n $attr=\"$tic_defaults{$attr}->{'default'}\" "; |
} |
} |
$result .= "/>\n"; |
$result .= "/>"; |
return $result; |
return $result; |
} |
} |
|
|
Line 1148 sub insert_ytics {
|
Line 1205 sub insert_ytics {
|
my $result; |
my $result; |
$result .= "\n <ytics "; |
$result .= "\n <ytics "; |
foreach my $attr (keys(%tic_defaults)) { |
foreach my $attr (keys(%tic_defaults)) { |
$result .= "$attr=\"$tic_defaults{$attr}->{'default'}\" "; |
$result .= "\n $attr=\"$tic_defaults{$attr}->{'default'}\" "; |
} |
} |
$result .= "/>\n"; |
$result .= "/>"; |
return $result; |
return $result; |
} |
} |
|
|
sub insert_key { |
sub insert_key { |
my $result; |
my $result; |
$result .= "\n <key \n"; |
$result .= "\n <key "; |
foreach my $attr (keys(%key_defaults)) { |
foreach my $attr (keys(%key_defaults)) { |
$result .= " $attr=\"$key_defaults{$attr}->{'default'}\"\n"; |
$result .= "\n $attr=\"$key_defaults{$attr}->{'default'}\""; |
} |
} |
$result .= " />\n"; |
$result .= " />"; |
return $result; |
return $result; |
} |
} |
|
|
Line 1168 sub insert_axis{
|
Line 1225 sub insert_axis{
|
my $result; |
my $result; |
$result .= "\n <axis "; |
$result .= "\n <axis "; |
foreach my $attr (keys(%axis_defaults)) { |
foreach my $attr (keys(%axis_defaults)) { |
$result .= " $attr=\"$axis_defaults{$attr}->{'default'}\"\n"; |
$result .= "\n $attr=\"$axis_defaults{$attr}->{'default'}\""; |
} |
} |
$result .= " />\n"; |
$result .= " />"; |
return $result; |
return $result; |
} |
} |
|
|
sub insert_title { return "\n <title></title>\n"; } |
sub insert_title { return "\n <title></title>"; } |
sub insert_xlabel { return "\n <xlabel></xlabel>\n"; } |
sub insert_xlabel { return "\n <xlabel></xlabel>"; } |
sub insert_ylabel { return "\n <ylabel></ylabel>\n"; } |
sub insert_ylabel { return "\n <ylabel></ylabel>"; } |
|
|
sub insert_label { |
sub insert_label { |
my $result; |
my $result; |
$result .= "\n <label "; |
$result .= "\n <label "; |
foreach my $attr (keys(%label_defaults)) { |
foreach my $attr (keys(%label_defaults)) { |
$result .= ' '.$attr.'="'. |
$result .= "\n $attr=\"". |
$label_defaults{$attr}->{'default'}."\"\n"; |
$label_defaults{$attr}->{'default'}."\""; |
} |
} |
$result .= " ></label>\n"; |
$result .= "></label>"; |
return $result; |
return $result; |
} |
} |
|
|
Line 1193 sub insert_curve {
|
Line 1250 sub insert_curve {
|
my $result; |
my $result; |
$result .= "\n <curve "; |
$result .= "\n <curve "; |
foreach my $attr (keys(%curve_defaults)) { |
foreach my $attr (keys(%curve_defaults)) { |
$result .= ' '.$attr.'="'. |
$result .= "\n $attr=\"". |
$curve_defaults{$attr}->{'default'}."\"\n"; |
$curve_defaults{$attr}->{'default'}."\""; |
} |
} |
$result .= " >\n"; |
$result .= " >"; |
$result .= &insert_data().&insert_data()."</curve>\n"; |
$result .= &insert_data().&insert_data()."\n </curve>"; |
} |
} |
|
|
sub insert_function { |
sub insert_function { |
my $result; |
my $result; |
$result .= "<function></function>\n"; |
$result .= "\n <function></function>"; |
return $result; |
return $result; |
} |
} |
|
|
sub insert_data { |
sub insert_data { |
my $result; |
my $result; |
$result .= " <data></data>\n"; |
$result .= "\n <data></data>"; |
return $result; |
return $result; |
} |
} |
|
|