[LON-CAPA-cvs] cvs: loncom /interface/statistics lonproblemanalysis.pm
matthew
lon-capa-cvs@mail.lon-capa.org
Thu, 11 Mar 2004 20:06:50 -0000
matthew Thu Mar 11 15:06:50 2004 EDT
Modified files:
/loncom/interface/statistics lonproblemanalysis.pm
Log:
OR_Tries_Foil_Analysis: Added a blank column between concepts on the plots.
Index: loncom/interface/statistics/lonproblemanalysis.pm
diff -u loncom/interface/statistics/lonproblemanalysis.pm:1.75 loncom/interface/statistics/lonproblemanalysis.pm:1.76
--- loncom/interface/statistics/lonproblemanalysis.pm:1.75 Thu Mar 11 14:34:10 2004
+++ loncom/interface/statistics/lonproblemanalysis.pm Thu Mar 11 15:06:50 2004
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: lonproblemanalysis.pm,v 1.75 2004/03/11 19:34:10 matthew Exp $
+# $Id: lonproblemanalysis.pm,v 1.76 2004/03/11 20:06:50 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -570,34 +570,37 @@
my @PlotData;
foreach my $concept (@$Concepts) {
foreach my $foilid (@{$concept->{'foils'}}) {
- for (my $i=$mintries;$i<=$maxtries;$i++) {
- if ($ResponseData{$foilid}->[$i]->{'_total'} == 0) {
- push(@{$PlotData[$i]->{'_correct'}},0);
+ for (my $try=$mintries;$try<=$maxtries;$try++) {
+ if ($ResponseData{$foilid}->[$try]->{'_total'} == 0) {
+ push(@{$PlotData[$try]->{'_correct'}},0);
} else {
- push(@{$PlotData[$i]->{'_correct'}},
- 100*$ResponseData{$foilid}->[$i]->{'_correct'}/
- $ResponseData{$foilid}->[$i]->{'_total'});
+ push(@{$PlotData[$try]->{'_correct'}},
+ 100*$ResponseData{$foilid}->[$try]->{'_correct'}/
+ $ResponseData{$foilid}->[$try]->{'_total'});
}
foreach my $option (@{$ORdata->{'_Options'}}) {
- push(@{$PlotData[$i]->{'_total'}},
- $ResponseData{$foilid}->[$i]->{'_total'});
- if ($ResponseData{$foilid}->[$i]->{'_total'} == 0) {
- push (@{$PlotData[$i]->{$option}},0);
+ push(@{$PlotData[$try]->{'_total'}},
+ $ResponseData{$foilid}->[$try]->{'_total'});
+ if ($ResponseData{$foilid}->[$try]->{'_total'} == 0) {
+ push (@{$PlotData[$try]->{$option}},0);
} else {
- if ($ResponseData{$foilid}->[$i]->{'_total'} ==
- $ResponseData{$foilid}->[$i]->{'_correct'}) {
- push(@{$PlotData[$i]->{$option}},0);
+ if ($ResponseData{$foilid}->[$try]->{'_total'} ==
+ $ResponseData{$foilid}->[$try]->{'_correct'}) {
+ push(@{$PlotData[$try]->{$option}},0);
} else {
- push (@{$PlotData[$i]->{$option}},
- 100 * $ResponseData{$foilid}->[$i]->{$option} /
- ($ResponseData{$foilid}->[$i]->{'_total'} -
- $ResponseData{$foilid}->[$i]->{'_correct'}));
+ push (@{$PlotData[$try]->{$option}},
+ 100 *
+ $ResponseData{$foilid}->[$try]->{$option} /
+ ($ResponseData{$foilid}->[$try]->{'_total'}
+ -
+ $ResponseData{$foilid}->[$try]->{'_correct'}
+ ));
}
}
- }
+ } # End of foreach my $option
}
- }
- }
+ } # End of foreach my $foilid
+ } # End of foreach my $concept
#
# Build a table for the plots
my $analysis_html = "<table>\n";
@@ -617,9 +620,34 @@
next if (! exists($PlotData[$try]->{$option}));
push(@Datasets,$PlotData[$try]->{$option});
}
+ #
+ # Put a blank in the data set between concepts
+ for (my $set =0;$set<=$#Datasets;$set++) {
+ my @Data = @{$Datasets[$set]};
+ my $idx = 0;
+ foreach my $concept (@{$Concepts}) {
+ foreach my $foilid (@{$concept->{'foils'}}) {
+ $Datasets[$set]->[$idx++]=shift(@Data);
+ }
+ if ($concept->{'name'} ne $Concepts->[-1]->{'name'}) {
+ $Datasets[$set]->[$idx++] = 0;
+ }
+ }
+ }
+ #
+ # Set up the labels needed for the bar graph
+ my @Labels;
+ my $idx = 1;
+ foreach my $concept (@{$Concepts}) {
+ foreach my $foilid (@{$concept->{'foils'}}) {
+ push(@Labels,$idx++);
+ }
+ push(@Labels,'');
+ }
+ #
my $correctgraph = &Apache::loncommon::DrawBarGraph
($title,'Foil Number','Percent Correct',
- 100,$plotcolors,undef,$Datasets[0]);
+ 100,$plotcolors,\@Labels,$Datasets[0]);
$analysis_html.= '<tr><td>'.$correctgraph.'</td>';
#
@@ -640,7 +668,7 @@
$title = 'Attempt '.$try.', '.$count;
my $incorrectgraph = &Apache::loncommon::DrawBarGraph
($title,'Foil Number','% Option Chosen Incorrectly',
- 100,$plotcolors,undef,@Datasets);
+ 100,$plotcolors,\@Labels,@Datasets);
$analysis_html.= '<td>'.$incorrectgraph.'</td>';
$analysis_html.= '<td>'.$optionkey."<td></tr>\n";
}