pspp-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pspp-cvs] Changes to pspp/src/examine.q


From: John Darrington
Subject: [Pspp-cvs] Changes to pspp/src/examine.q
Date: Thu, 13 Jan 2005 23:05:50 -0500

Index: pspp/src/examine.q
diff -u pspp/src/examine.q:1.17 pspp/src/examine.q:1.18
--- pspp/src/examine.q:1.17     Fri Jan  7 00:17:20 2005
+++ pspp/src/examine.q  Fri Jan 14 04:05:47 2005
@@ -264,7 +264,6 @@
                                   cmd.v_id);
            }
 
-#ifndef NO_CHARTS
          if ( cmd.a_plot[XMN_PLT_HISTOGRAM] ) 
            {
              for ( v = 0 ; v < n_dependent_vars; ++v ) 
@@ -280,7 +279,6 @@
                                 &normal, 0);
                }
            }
-#endif
 
        }
 
@@ -332,7 +330,6 @@
                  if ( cmd.a_plot[XMN_PLT_NPPLOT] ) 
                    np_plot(&(*fs)->m[v], s);
 
-#ifndef NO_CHARTS
                  if ( cmd.a_plot[XMN_PLT_HISTOGRAM] ) 
                    {
                      struct normal_curve normal;
@@ -344,7 +341,6 @@
                      histogram_plot((*fs)->m[v].histogram, 
                                     s,  &normal, 0);
                    }
-#endif
                  
                } /* for ( fs .... */
 
@@ -1630,7 +1626,7 @@
                   struct variable **vars, int n_vars, 
                   const struct variable *id)
 {
-#ifndef NO_CHARTS
+
   int i;
   struct factor_statistics **fs ;
 
@@ -1644,13 +1640,13 @@
     {
       double y_min = DBL_MAX;
       double y_max = -DBL_MAX;
-      struct chart ch;
+      struct chart *ch;
 
-      chart_initialise(&ch);
+      ch = chart_create();
 
       const char *s = factor_to_string(fctr, *fs, 0 );
 
-      chart_write_title(&ch, s);
+      chart_write_title(ch, s);
 
       for ( i = 0 ; i < n_vars ; ++i ) 
        {
@@ -1658,18 +1654,18 @@
          y_min = min(y_min, (*fs)->m[i].min);
        }
       
-      boxplot_draw_yscale(&ch, y_max, y_min);
+      boxplot_draw_yscale(ch, y_max, y_min);
          
       for ( i = 0 ; i < n_vars ; ++i ) 
        {
 
-         const double box_width = (ch.data_right - ch.data_left) 
+         const double box_width = (ch->data_right - ch->data_left) 
            / (n_vars * 2.0 ) ;
 
          const double box_centre = ( i * 2 + 1) * box_width 
-           + ch.data_left;
+           + ch->data_left;
              
-         boxplot_draw_boxplot(&ch,
+         boxplot_draw_boxplot(ch,
                               box_centre, box_width,
                               &(*fs)->m[i],
                               var_to_string(vars[i]));
@@ -1677,10 +1673,9 @@
 
        }
 
-      chart_finalise(&ch);
+      chart_submit(ch);
 
     }
-#endif
 }
 
 
@@ -1694,17 +1689,17 @@
               int n_vars,
               const struct variable *id)
 {
-#ifndef NO_CHARTS
+
   int i;
 
   for ( i = 0 ; i < n_vars ; ++i ) 
     {
       struct factor_statistics **fs ;
-      struct chart ch;
+      struct chart *ch;
 
-      chart_initialise(&ch);
+      ch = chart_create();
 
-      boxplot_draw_yscale(&ch, totals[i].max, totals[i].min);
+      boxplot_draw_yscale(ch, totals[i].max, totals[i].min);
 
       if ( fctr ) 
        {
@@ -1713,7 +1708,7 @@
          for ( fs = fctr->fs ; *fs ; ++fs ) 
              ++n_factors;
 
-         chart_write_title(&ch, _("Boxplot of %s vs. %s"), 
+         chart_write_title(ch, _("Boxplot of %s vs. %s"), 
                            var_to_string(vars[i]), 
var_to_string(fctr->indep_var[0]) );
 
          for ( fs = fctr->fs ; *fs ; ++fs ) 
@@ -1721,13 +1716,13 @@
              
              const char *s = factor_to_string_concise(fctr, *fs);
 
-             const double box_width = (ch.data_right - ch.data_left) 
+             const double box_width = (ch->data_right - ch->data_left) 
                / (n_factors * 2.0 ) ;
 
              const double box_centre = ( f++ * 2 + 1) * box_width 
-               + ch.data_left;
+               + ch->data_left;
              
-             boxplot_draw_boxplot(&ch,
+             boxplot_draw_boxplot(ch,
                                   box_centre, box_width,
                                   &(*fs)->m[i],
                                   s);
@@ -1735,21 +1730,20 @@
        }
       else
        {
-         const double box_width = (ch.data_right - ch.data_left) / 3.0;
-         const double box_centre = (ch.data_right + ch.data_left) / 2.0;
+         const double box_width = (ch->data_right - ch->data_left) / 3.0;
+         const double box_centre = (ch->data_right + ch->data_left) / 2.0;
 
-         chart_write_title(&ch, _("Boxplot"));
+         chart_write_title(ch, _("Boxplot"));
 
-         boxplot_draw_boxplot(&ch,
+         boxplot_draw_boxplot(ch,
                               box_centre,    box_width, 
                               &totals[i],
                               var_to_string(vars[i]) );
          
        }
 
-      chart_finalise(&ch);
+      chart_submit(ch);
     }
-#endif
 }
 
 
@@ -1758,15 +1752,14 @@
 void
 np_plot(const struct metrics *m, const char *factorname)
 {
-#ifndef NO_CHARTS
   int i;
   double yfirst=0, ylast=0;
 
   /* Normal Plot */
-  struct chart np_chart;
+  struct chart *np_chart;
 
   /* Detrended Normal Plot */
-  struct chart dnp_chart;
+  struct chart *dnp_chart;
 
   /* The slope and intercept of the ideal normal probability line */
   const double slope = 1.0 / m->stddev;
@@ -1776,16 +1769,21 @@
   if ( m->n_data == 0 ) 
     return ; 
 
-  chart_initialise(&np_chart);
-  chart_write_title(&np_chart, _("Normal Q-Q Plot of %s"), factorname);
-  chart_write_xlabel(&np_chart, _("Observed Value"));
-  chart_write_ylabel(&np_chart, _("Expected Normal"));
+  np_chart = chart_create();
+  dnp_chart = chart_create();
+
+  if ( !np_chart || ! dnp_chart ) 
+    return ;
+
+  chart_write_title(np_chart, _("Normal Q-Q Plot of %s"), factorname);
+  chart_write_xlabel(np_chart, _("Observed Value"));
+  chart_write_ylabel(np_chart, _("Expected Normal"));
+
 
-  chart_initialise(&dnp_chart);
-  chart_write_title(&dnp_chart, _("Detrended Normal Q-Q Plot of %s"), 
+  chart_write_title(dnp_chart, _("Detrended Normal Q-Q Plot of %s"), 
                    factorname);
-  chart_write_xlabel(&dnp_chart, _("Observed Value"));
-  chart_write_ylabel(&dnp_chart, _("Dev from Normal"));
+  chart_write_xlabel(dnp_chart, _("Observed Value"));
+  chart_write_ylabel(dnp_chart, _("Dev from Normal"));
 
   yfirst = gsl_cdf_ugaussian_Pinv (m->wvp[0]->rank / ( m->n + 1));
   ylast =  gsl_cdf_ugaussian_Pinv (m->wvp[m->n_data-1]->rank / ( m->n + 1));
@@ -1798,46 +1796,45 @@
     double x_upper = max(m->max, (ylast  - intercept) / slope) ;
     double slack = (x_upper - x_lower)  * 0.05 ;
 
-    chart_write_xscale(&np_chart, x_lower - slack, x_upper + slack, 5);
+    chart_write_xscale(np_chart, x_lower - slack, x_upper + slack, 5);
 
-    chart_write_xscale(&dnp_chart, m->min, m->max, 5);
+    chart_write_xscale(dnp_chart, m->min, m->max, 5);
 
   }
 
-  chart_write_yscale(&np_chart, yfirst, ylast, 5);
+  chart_write_yscale(np_chart, yfirst, ylast, 5);
 
   {
-  /* We have to cache the detrended data, beacause we need to 
-     find its limits before we can plot it */
-  double *d_data;
-  d_data = xmalloc (m->n_data * sizeof(double));
-  double d_max = -DBL_MAX;
-  double d_min = DBL_MAX;
-  for ( i = 0 ; i < m->n_data; ++i ) 
-    {
-      const double ns = gsl_cdf_ugaussian_Pinv (m->wvp[i]->rank / ( m->n + 1));
+    /* We have to cache the detrended data, beacause we need to 
+       find its limits before we can plot it */
+    double *d_data;
+    d_data = xmalloc (m->n_data * sizeof(double));
+    double d_max = -DBL_MAX;
+    double d_min = DBL_MAX;
+    for ( i = 0 ; i < m->n_data; ++i ) 
+      {
+       const double ns = gsl_cdf_ugaussian_Pinv (m->wvp[i]->rank / ( m->n + 
1));
 
-      chart_datum(&np_chart, 0, m->wvp[i]->v.f, ns);
+       chart_datum(np_chart, 0, m->wvp[i]->v.f, ns);
 
-      d_data[i] = (m->wvp[i]->v.f - m->mean) / m->stddev  - ns;
+       d_data[i] = (m->wvp[i]->v.f - m->mean) / m->stddev  - ns;
    
-      if ( d_data[i] < d_min ) d_min = d_data[i];
-      if ( d_data[i] > d_max ) d_max = d_data[i];
-    }
-  chart_write_yscale(&dnp_chart, d_min, d_max, 5);
+       if ( d_data[i] < d_min ) d_min = d_data[i];
+       if ( d_data[i] > d_max ) d_max = d_data[i];
+      }
+    chart_write_yscale(dnp_chart, d_min, d_max, 5);
 
-  for ( i = 0 ; i < m->n_data; ++i ) 
-      chart_datum(&dnp_chart, 0, m->wvp[i]->v.f, d_data[i]);
+    for ( i = 0 ; i < m->n_data; ++i ) 
+      chart_datum(dnp_chart, 0, m->wvp[i]->v.f, d_data[i]);
 
-  free(d_data);
+    free(d_data);
   }
 
-  chart_line(&np_chart, slope, intercept, yfirst, ylast , CHART_DIM_Y);
-  chart_line(&dnp_chart, 0, 0, m->min, m->max , CHART_DIM_X);
+  chart_line(np_chart, slope, intercept, yfirst, ylast , CHART_DIM_Y);
+  chart_line(dnp_chart, 0, 0, m->min, m->max , CHART_DIM_X);
 
-  chart_finalise(&np_chart);
-  chart_finalise(&dnp_chart);
-#endif
+  chart_submit(np_chart);
+  chart_submit(dnp_chart);
 }
 
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]