- abscissa_scale = (geom->axis[SCALE_ABSCISSA].data_max - geom->axis[SCALE_ABSCISSA].data_min) / (x_max - x_min);
- ordinate_scale = (geom->axis[SCALE_ORDINATE].data_max - geom->axis[SCALE_ORDINATE].data_min) /
- gsl_histogram_max_val (h->gsl_hist);
+ /* The integral over the histogram is binwidth * sum(bin_i), while the integral over the pdf is 1 */
+ /* Therefore the pdf has to be scaled accordingly such that the integrals are equal */
+ ordinate_scale = binwidth * gsl_histogram_sum(h->gsl_hist);
+
+ /* Clip normal curve to the rectangle formed by the axes. */
+ cairo_save (cr);
+ cairo_rectangle (cr, geom->axis[SCALE_ABSCISSA].data_min, geom->axis[SCALE_ORDINATE].data_min,
+ geom->axis[SCALE_ABSCISSA].data_max - geom->axis[SCALE_ABSCISSA].data_min,
+ geom->axis[SCALE_ORDINATE].data_max - geom->axis[SCALE_ORDINATE].data_min);
+ cairo_clip (cr);