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++)
{