I modified the legend rendering to avoid the clipping of mean and
standard deviation in the legend of the histogram plot. In addition
I changed the number print format to also show reasonable numbers
for small values.
fixed: https://savannah.gnu.org/bugs/index.php?62198
histogram_write_legend (cairo_t *cr, const struct xrchart_geometry *geom,
double n, double mean, double stddev)
{
histogram_write_legend (cairo_t *cr, const struct xrchart_geometry *geom,
double n, double mean, double stddev)
{
- double y = geom->axis[SCALE_ORDINATE].data_min;
+ double y = geom->axis[SCALE_ORDINATE].data_max - geom->font_size;
- char *buf = xasprintf (_("N = %.2f"), n);
- cairo_move_to (cr, geom->legend_left, y);
+ char *buf = xasprintf (_("Mean"));
+ cairo_move_to (cr,geom->legend_left, y);
xrchart_label (cr, 'l', 'b', geom->font_size, buf);
xrchart_label (cr, 'l', 'b', geom->font_size, buf);
- y += geom->font_size * 1.5;
+ y -= geom->font_size * 1.5;
+ free (buf);
+ buf = xasprintf ("%g", mean);
+ cairo_move_to (cr,geom->legend_left, y);
+ xrchart_label (cr, 'l', 'b', geom->font_size, buf);
+ y -= geom->font_size * 2.0;
- char *buf = xasprintf (_("Mean = %.1f"), mean);
- cairo_move_to (cr,geom->legend_left, y);
+ char *buf = xasprintf (_("Std Dev"));
+ cairo_move_to (cr, geom->legend_left, y);
+ xrchart_label (cr, 'l', 'b', geom->font_size, buf);
+ free (buf);
+ y -= geom->font_size * 1.5;
+ buf = xasprintf ("%g", stddev);
+ cairo_move_to (cr, geom->legend_left, y);
xrchart_label (cr, 'l', 'b', geom->font_size, buf);
xrchart_label (cr, 'l', 'b', geom->font_size, buf);
- y += geom->font_size * 1.5;
+ y -= geom->font_size * 2.0;
- char *buf = xasprintf (_("Std. Dev = %.2f"), stddev);
+ char *buf = xasprintf (_("N = %.0f"), n);
cairo_move_to (cr, geom->legend_left, y);
xrchart_label (cr, 'l', 'b', geom->font_size, buf);
free (buf);
cairo_move_to (cr, geom->legend_left, y);
xrchart_label (cr, 'l', 'b', geom->font_size, buf);
free (buf);