version 1.34, 2002/01/08 21:41:20
|
version 1.35, 2002/01/09 16:51:51
|
Line 28
|
Line 28
|
# 12/15/01 Matthew |
# 12/15/01 Matthew |
# 12/17 12/18 12/19 12/20 12/21 12/27 12/28 12/30 12/31 Matthew |
# 12/17 12/18 12/19 12/20 12/21 12/27 12/28 12/30 12/31 Matthew |
# 01/01/02 Matthew |
# 01/01/02 Matthew |
# 01/02 01/03 01/04 Matthew |
# 01/02 01/03 01/04 01/07 01/08 01/09 Matthew |
|
|
|
# Current issues |
|
# 1. Gnuplot is unable to vary the color or linestyle of <data> plots. |
|
# The key does not know this so it is misleading for the user. |
|
# Multiple <function>s can be plotted with varying line styles and |
|
# colors. |
|
# |
package Apache::lonplot; |
package Apache::lonplot; |
|
|
use strict; |
use strict; |
Line 87 my %linestyles =
|
Line 94 my %linestyles =
|
errorbars => 3, |
errorbars => 3, |
xerrorbars => [3,4], |
xerrorbars => [3,4], |
yerrorbars => [3,4], |
yerrorbars => [3,4], |
xyerrorbars => [4,6,7], |
xyerrorbars => [4,6], |
boxes => 3, |
boxes => 3, |
boxerrorbars => [3,4,5], |
# boxerrorbars => [3,4,5], |
boxxyerrorbars => [4,6,7], |
# boxxyerrorbars => [4,6,7], |
financebars => 5, |
# financebars => 5, |
candlesticks => 5, |
# candlesticks => 5, |
vector => 2 |
vector => 4 |
); |
); |
|
|
my $int_test = sub {$_[0]=~s/\s+//g;$_[0]=~/^\d+$/}; |
my $int_test = sub {$_[0]=~s/\s+//g;$_[0]=~/^\d+$/}; |
Line 271 my %curve_defaults =
|
Line 278 my %curve_defaults =
|
linestyle => { |
linestyle => { |
default => 'lines', |
default => 'lines', |
test => $linestyle_test, |
test => $linestyle_test, |
description => 'Style of the axis lines', |
description => 'Line style', |
edit_type => 'choice', |
edit_type => 'choice', |
choices => ['lines','linespoints','dots','points','steps', |
choices => ['lines','linespoints','dots','points','steps', |
'fsteps','histeps','errorbars','xerrorbars', |
'fsteps','histeps','errorbars','xerrorbars', |
Line 531 sub start_curve {
|
Line 538 sub start_curve {
|
$result .= &edit_attributes($target,$token,\%curve_defaults); |
$result .= &edit_attributes($target,$token,\%curve_defaults); |
} 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(%label_defaults)); |
($token,$parstack,$safeeval,keys(%curve_defaults)); |
if ($constructtag) { |
if ($constructtag) { |
$result = &Apache::edit::rebuild_tag($token); |
$result = &Apache::edit::rebuild_tag($token); |
$result.= &Apache::edit::handle_insert(); |
$result.= &Apache::edit::handle_insert(); |
Line 603 sub start_data {
|
Line 610 sub start_data {
|
# make sure it's all numbers and make sure each array |
# make sure it's all numbers and make sure each array |
# is of the same length. |
# is of the same length. |
my @data; |
my @data; |
if ($datatext =~ /,/) { |
if ($datatext =~ /,/) { # comma deliminated |
@data = split /,/,$datatext; |
@data = split /,/,$datatext; |
} else { # Assume it's space seperated. |
} else { # Assume it's space seperated. |
@data = split / /,$datatext; |
@data = split / /,$datatext; |
Line 624 sub start_data {
|
Line 631 sub start_data {
|
$data[$i] = 1.15572734979092; |
$data[$i] = 1.15572734979092; |
} |
} |
} |
} |
|
# complain if the number of data points is not the same as |
|
# in previous sets of data. |
|
if (($curves[-1]->{'data'}) && ($#data != $#{$curves[-1]->{'data'}})){ |
|
&Apache::lonxml::warning |
|
('Number of data points is not consistent with previous '. |
|
'number of data points'); |
|
} |
push @{$curves[-1]->{'data'}},\@data; |
push @{$curves[-1]->{'data'}},\@data; |
} elsif ($target eq 'edit') { |
} elsif ($target eq 'edit') { |
$result .= &Apache::edit::tag_start($target,$token,'Curve Data'); |
$result .= &Apache::edit::tag_start($target,$token,'Curve Data'); |
Line 829 sub edit_attributes {
|
Line 843 sub edit_attributes {
|
@keys = sort(keys(%$defaults)); |
@keys = sort(keys(%$defaults)); |
} |
} |
foreach my $attr (@keys) { |
foreach my $attr (@keys) { |
|
# append a ' ' to the description if it doesn't have one already. |
|
my $description = $defaults->{$attr}->{'description'}; |
|
$description .= ' ' if ($description !~ / $/); |
if ($defaults->{$attr}->{'edit_type'} eq 'entry') { |
if ($defaults->{$attr}->{'edit_type'} eq 'entry') { |
$result .= &Apache::edit::text_arg( |
$result .= &Apache::edit::text_arg |
$defaults->{$attr}->{'description'}, |
($description,$attr,$token); |
$attr, |
|
$token); |
|
} elsif ($defaults->{$attr}->{'edit_type'} eq 'choice') { |
} elsif ($defaults->{$attr}->{'edit_type'} eq 'choice') { |
$result .= &Apache::edit::select_arg( |
$result .= &Apache::edit::select_arg |
$defaults->{$attr}->{'description'}, |
($description,$attr,$defaults->{$attr}->{'choices'},$token); |
$attr, |
|
$defaults->{$attr}->{'choices'}, |
|
$token); |
|
} elsif ($defaults->{$attr}->{'edit_type'} eq 'on_off') { |
} elsif ($defaults->{$attr}->{'edit_type'} eq 'on_off') { |
$result .= &Apache::edit::select_arg( |
$result .= &Apache::edit::select_arg |
$defaults->{$attr}->{'description'}, |
($description,$attr,['on','off'],$token); |
$attr, |
|
['on','off'], |
|
$token); |
|
} |
} |
$result .= '<br />'; |
$result .= '<br />'; |
} |
} |