--- loncom/xml/lonplot.pm 2012/12/05 19:30:28 1.170 +++ loncom/xml/lonplot.pm 2014/06/19 17:23:50 1.175 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Dynamic plot # -# $Id: lonplot.pm,v 1.170 2012/12/05 19:30:28 raeburn Exp $ +# $Id: lonplot.pm,v 1.175 2014/06/19 17:23:50 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -78,7 +78,7 @@ BEGIN { ## align ## ## @labels: $labels[$i] = \%label -## %label: text, xpos, ypos, justify +## %label: text, xpos, ypos, justify, rotate, zlayer ## ## @curves: $curves[$i] = \%curve ## %curve: name, linestyle, ( function | data ) @@ -105,7 +105,7 @@ my %linetypes = # For png use these li ); my %ps_linetypes = # For ps the line types are different! ( - solid => 0, + solid => 1, dashed => 7 ); @@ -421,7 +421,14 @@ my %label_defaults = description => 'Rotation of label (degrees)', edit_type => 'entry', size => '10', - } + }, + zlayer => { + default => '', + test => sub {$_[0]=~/^(front|back)$/}, + description => 'Z position of label', + edit_type => 'choice', + choices => ['front','back'], + }, ); my @tic_edit_order = ('location','mirror','start','increment','end', @@ -1714,7 +1721,7 @@ sub generate_tics { my $result = ''; - if (defined %$spec) { + if ((ref($spec) eq 'HASH') && (keys(%{$spec}) > 0)) { @@ -1752,7 +1759,7 @@ sub generate_tics { if ($spec->{'minorfreq'} != 0) { $result .= "set m$type $spec->{'minorfreq'}\n"; } - } else { + } elsif ($target eq 'tex' ) { $result .= "set $type font " . '"Helvetica,22"' ."\n"; } @@ -1967,7 +1974,10 @@ sub write_gnuplot_file { $gnuplot_input .= ' '.$label->{'justify'}; if ($target eq 'tex') { - $gnuplot_input .=' font "'.$font_properties->{'printname'}.','.$fontsize.'pt"' ; + $gnuplot_input .=' font "'.$font_properties->{'printname'}.','.$fontsize.'pt"'; + } + if (($label->{'zlayer'} eq 'front') || ($label->{'zlayer'} eq 'back')) { + $gnuplot_input .= ' '.$label->{'zlayer'}; } $gnuplot_input .= $/; } @@ -1984,7 +1994,7 @@ sub write_gnuplot_file { # my $linestyle_index = 50; my $line_width = ''; - my $plots; + my $plots = ''; # If arrows are needed there will be an arrow style for each as well: # @@ -1993,8 +2003,11 @@ sub write_gnuplot_file { for (my $i = 0;$i<=$#curves;$i++) { $curve = $curves[$i]; - my $plot_command; - my $plot_type = ', ' if ($i > 0); + my $plot_command = ''; + my $plot_type = ''; + if ($i > 0) { + $plot_type = ', '; + } if ($target eq 'tex') { $curve->{'linewidth'} *= 2; }