X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fcharts%2Fplot-hist-cairo.c;h=006b39225e274f73e7d0dd2241a203ff7143d25c;hb=aad0ae4913ecd01ccc954f8828623ad5da35cd1b;hp=93133c2e9e0acb46d93dab01a15f40fc8b234080;hpb=bf4006fb1f0554d72dc5c3c136cca9caa7491700;p=pspp diff --git a/src/output/charts/plot-hist-cairo.c b/src/output/charts/plot-hist-cairo.c index 93133c2e9e..006b39225e 100644 --- a/src/output/charts/plot-hist-cairo.c +++ b/src/output/charts/plot-hist-cairo.c @@ -15,7 +15,7 @@ along with this program. If not, see . */ #include - +#include "math/decimal.h" #include "output/charts/plot-hist.h" #include @@ -103,9 +103,20 @@ hist_draw_bar (cairo_t *cr, const struct xrchart_geometry *geom, cairo_stroke (cr); if (label) - draw_tick (cr, geom, SCALE_ABSCISSA, bins > 10, - x_pos + width / 2.0, "%.*g", - DBL_DIG + 1, (upper + lower) / 2.0); + { + struct decimal decupper; + struct decimal declower; + struct decimal middle; + decimal_from_double (&declower, lower); + decimal_from_double (&decupper, upper); + middle = declower; + decimal_add (&middle, &decupper); + decimal_int_divide (&middle, 2); + char *str = decimal_to_string (&middle); + draw_tick (cr, geom, SCALE_ABSCISSA, bins > 10, + x_pos + width / 2.0, "%s", str); + free (str); + } } void @@ -129,7 +140,7 @@ xrchart_draw_histogram (const struct chart_item *chart_item, cairo_t *cr, bins = gsl_histogram_bins (h->gsl_hist); - xrchart_write_yscale (cr, geom, 0, gsl_histogram_max_val (h->gsl_hist), 5); + xrchart_write_yscale (cr, geom, 0, gsl_histogram_max_val (h->gsl_hist)); for (i = 0; i < bins; i++) {