Diff for /loncom/interface/statistics/lonproblemanalysis.pm between versions 1.97 and 1.98

version 1.97, 2004/10/29 15:27:39 version 1.98, 2004/10/29 15:52:32
Line 390  sub radio_response_analysis { Line 390  sub radio_response_analysis {
     my $foildata = $problem_analysis->{'_Foils'};      my $foildata = $problem_analysis->{'_Foils'};
     my ($table,$foils,$concepts) = &build_foil_index($problem_analysis);      my ($table,$foils,$concepts) = &build_foil_index($problem_analysis);
     #      #
       my %true_foils;
     my $num_true = 0;      my $num_true = 0;
     foreach my $foil (@$foils) {      if (! $problem_analysis->{'answercomputed'}) {
         if ($foildata->{$foil}->{'value'} eq 'true') {          foreach my $foil (@$foils) {
             $num_true++;               if ($foildata->{$foil}->{'value'} eq 'true') {
                   $true_foils{$foil}++; 
               }
         }          }
           $num_true = scalar(keys(%true_foils));
     }      }
     #      #
     $analysis_html .= $table;      $analysis_html .= $table;
Line 433  sub radio_response_analysis { Line 437  sub radio_response_analysis {
     #      #
     $analysis_html.='<table>';      $analysis_html.='<table>';
     for (my $plot_num = 1;$plot_num<=$ENV{'form.NumPlots'};$plot_num++) {      for (my $plot_num = 1;$plot_num<=$ENV{'form.NumPlots'};$plot_num++) {
         &Apache::lonnet::logthis('plot num = '.$plot_num);  
         # classify data ->correct foil -> selected foil          # classify data ->correct foil -> selected foil
         my ($restriction_function,          my ($restriction_function,
             $correct_foil_title,$incorrect_foil_title,              $correct_foil_title,$incorrect_foil_title,
Line 509  sub radio_response_analysis { Line 512  sub radio_response_analysis {
         if ($problem_analysis->{'answercomputed'} || $num_true > 1) {          if ($problem_analysis->{'answercomputed'} || $num_true > 1) {
             ($stacked_plot,$count_by_foil) =              ($stacked_plot,$count_by_foil) =
                 &RR_create_stacked_selection_plot($foils,$foil_choice_data,                  &RR_create_stacked_selection_plot($foils,$foil_choice_data,
                                                   $incorrect_foil_title);                                                    $incorrect_foil_title,
                                                     \%true_foils);
         }          }
         #          #
         if ($concept_plot ne '' ||          if ($concept_plot ne '' ||
Line 698  sub RR_create_percent_selected_plot { Line 702  sub RR_create_percent_selected_plot {
 }  }
   
 sub RR_create_stacked_selection_plot {  sub RR_create_stacked_selection_plot {
     my ($foils,$foil_data,$title)=@_;      my ($foils,$foil_data,$title,$true_foils)=@_;
     #      #
     my @dataset; # array of array refs - multicolor rows $datasets[row]->[col]      my @dataset; # array of array refs - multicolor rows $datasets[row]->[col]
     my @labels;      my @labels;
     my $count;      my $count;
     my %column; # maps foil name to column in @datasets      my %column; # maps foil name to column in @datasets
     for (my $i=0;$i<scalar(@$foils);$i++) {      for (my $i=0;$i<scalar(@$foils);$i++) {
           my $foil = $foils->[$i];
           if (defined($true_foils) && scalar(keys(%$true_foils)) > 0 ) {
               next if (! $true_foils->{$foil} );
               push(@labels,$i+1);
           } else {
               next if (! exists($foil_data->{$foil}));
               push(@labels,$i+1);
           }
         next if (! exists($foil_data->{$foils->[$i]}));          next if (! exists($foil_data->{$foils->[$i]}));
         my $correct_foil = $foils->[$i];          $column{$foil}= $count++;
         push(@labels,$i+1);  
         $column{$correct_foil}= $count++;  
         for (my $j=0;$j<scalar(@$foils);$j++) {          for (my $j=0;$j<scalar(@$foils);$j++) {
             my $value = 0;              my $value = 0;
             if ($i != $j ) {              if ($i != $j ) {
                 $value += $foil_data->{$correct_foil}->{$foils->[$j]};                  $value += $foil_data->{$foil}->{$foils->[$j]};
             }              }
             $dataset[$j]->[$column{$correct_foil}]=$value;              $dataset[$j]->[$column{$foil}]=$value;
         }          }
     }      }
     #      #

Removed from v.1.97  
changed lines
  Added in v.1.98


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>