[LON-CAPA-cvs] cvs: loncom /interface loncommon.pm

matthew lon-capa-cvs@mail.lon-capa.org
Tue, 02 Nov 2004 19:01:13 -0000


matthew		Tue Nov  2 14:01:13 2004 EDT

  Modified files:              
    /loncom/interface	loncommon.pm 
  Log:
  DrawBarGraph: Modified to produce better plots when there are 2 (or fewer) 
      data sets to plot.
  
  
Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.224 loncom/interface/loncommon.pm:1.225
--- loncom/interface/loncommon.pm:1.224	Fri Oct 29 14:40:40 2004
+++ loncom/interface/loncommon.pm	Tue Nov  2 14:01:12 2004
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.224 2004/10/29 18:40:40 raeburn Exp $
+# $Id: loncommon.pm,v 1.225 2004/11/02 19:01:12 matthew Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -3292,7 +3292,18 @@
     if (! @Values || ref($Values[0]) ne 'ARRAY') {
         return '';
     }
+    #
+    my @Labels;
+    if (defined($labels)) {
+        @Labels = @$labels;
+    } else {
+        for (my $i=0;$i<@{$Values[0]};$i++) {
+            push (@Labels,$i+1);
+        }
+    }
+    #
     my $NumBars = scalar(@{$Values[0]});
+    if ($NumBars < scalar(@Labels)) { $NumBars = scalar(@Labels); }
     my %ValuesHash;
     my $NumSets=1;
     foreach my $array (@Values) {
@@ -3302,10 +3313,14 @@
     }
     #
     my ($height,$width,$xskip,$bar_width) = (200,120,1,15);
-    if ($NumBars < 5) {
-        $width = 120+$NumBars*25;
+    if ($NumBars < 3) {
+        $width = 120+$NumBars*32;
         $xskip = 1;
-        $bar_width = 25;
+        $bar_width = 30;
+    } elsif ($NumBars < 5) {
+        $width = 120+$NumBars*20;
+        $xskip = 1;
+        $bar_width = 20;
     } elsif ($NumBars < 10) {
         $width = 120+$NumBars*15;
         $xskip = 1;
@@ -3324,15 +3339,6 @@
         $bar_width = 4;
     }
     #
-    my @Labels;
-    if (defined($labels)) {
-        @Labels = @$labels;
-    } else {
-        for (my $i=0;$i<@{$Values[0]};$i++) {
-            push (@Labels,$i+1);
-        }
-    }
-    #
     $Max = 1 if ($Max < 1);
     if ( int($Max) < $Max ) {
         $Max++;