box_whisker_whiskers (bw, whisker);
box_whisker_hinges (bw, hinge);
- box_bottom = geom->axis[SCALE_ORDINATE].data_min + (hinge[0] - geom->axis[SCALE_ORDINATE].min ) * geom->axis[SCALE_ORDINATE].scale;
+ box_bottom = geom->axis[SCALE_ORDINATE].data_min + (hinge[0] - geom->axis[SCALE_ORDINATE].min) * geom->axis[SCALE_ORDINATE].scale;
- box_top = geom->axis[SCALE_ORDINATE].data_min + (hinge[2] - geom->axis[SCALE_ORDINATE].min ) * geom->axis[SCALE_ORDINATE].scale;
+ box_top = geom->axis[SCALE_ORDINATE].data_min + (hinge[2] - geom->axis[SCALE_ORDINATE].min) * geom->axis[SCALE_ORDINATE].scale;
bottom_whisker = geom->axis[SCALE_ORDINATE].data_min + (whisker[0] - geom->axis[SCALE_ORDINATE].min) *
geom->axis[SCALE_ORDINATE].scale;
cairo_stroke (cr);
/* Draw top whisker */
- if (! isnan (top_whisker) )
+ if (! isnan (top_whisker))
{
cairo_move_to (cr, box_left, top_whisker);
cairo_line_to (cr, box_right, top_whisker);
}
void
-xrchart_draw_boxplot (const struct chart_item *chart_item, cairo_t *cr,
+xrchart_draw_boxplot (const struct chart *chart, cairo_t *cr,
struct xrchart_geometry *geom)
{
- const struct boxplot *boxplot = to_boxplot (chart_item);
+ const struct boxplot *boxplot = to_boxplot (chart);
double box_width;
size_t i;
- xrchart_write_yscale (cr, geom, boxplot->y_min, boxplot->y_max);
- xrchart_write_title (cr, geom, "%s", chart_item->title);
+ if (! xrchart_write_yscale (cr, geom, boxplot->y_min, boxplot->y_max))
+ return;
+
+ xrchart_write_title (cr, geom, "%s", chart->title);
box_width = (geom->axis[SCALE_ABSCISSA].data_max - geom->axis[SCALE_ABSCISSA].data_min) / boxplot->n_boxes / 2.0;
for (i = 0; i < boxplot->n_boxes; i++)