From c7a0edf69b4cab48148c696f4fd011c90be22173 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 18 Feb 2016 07:56:42 +0100 Subject: [PATCH] Do not attempt to draw whiskers on boxplots if they are NaN. Reported by: Friedrich Beckmann Closes Bug: #47140 --- src/output/charts/boxplot-cairo.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/output/charts/boxplot-cairo.c b/src/output/charts/boxplot-cairo.c index d798bc2abb..516fe6423e 100644 --- a/src/output/charts/boxplot-cairo.c +++ b/src/output/charts/boxplot-cairo.c @@ -57,10 +57,10 @@ boxplot_draw_box (cairo_t *cr, const struct xrchart_geometry *geom, const double box_right = box_centre + box_width / 2.0; - double box_bottom ; - double box_top ; - double bottom_whisker ; - double top_whisker ; + double box_bottom; + double box_top; + double bottom_whisker; + double top_whisker; box_whisker_whiskers (bw, whisker); box_whisker_hinges (bw, hinge); @@ -107,20 +107,23 @@ boxplot_draw_box (cairo_t *cr, const struct xrchart_geometry *geom, cairo_stroke (cr); /* Draw top whisker */ - cairo_move_to (cr, box_left, top_whisker); - cairo_line_to (cr, box_right, top_whisker); - cairo_stroke (cr); + if (! isnan (top_whisker) ) + { + cairo_move_to (cr, box_left, top_whisker); + cairo_line_to (cr, box_right, top_whisker); + cairo_stroke (cr); + } - /* Draw centre line. - (bottom half) */ - if (! isnan (whisker[0])) + /* Draw centre line. */ + if (! isnan (bottom_whisker) && ! isnan (box_bottom)) { + /* (bottom half) */ cairo_move_to (cr, box_centre, bottom_whisker); cairo_line_to (cr, box_centre, box_bottom); cairo_stroke (cr); } - if (! isnan (whisker[1])) + if (! isnan (top_whisker) && ! isnan (box_top)) { /* (top half) */ cairo_move_to (cr, box_centre, top_whisker); -- 2.30.2