X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fcharts%2Fscatterplot-cairo.c;h=211d2d60dcdf8b2fca15713f0da53ad952f9c1ae;hb=b5fff4285b05709d55643698a201d28c7b61ee4f;hp=f25b2cde4ee9b615898946ce62394670ced6c199;hpb=aad0ae4913ecd01ccc954f8828623ad5da35cd1b;p=pspp diff --git a/src/output/charts/scatterplot-cairo.c b/src/output/charts/scatterplot-cairo.c index f25b2cde4e..211d2d60dc 100644 --- a/src/output/charts/scatterplot-cairo.c +++ b/src/output/charts/scatterplot-cairo.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2014 Free Software Foundation, Inc. + Copyright (C) 2014, 2015 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -28,6 +28,7 @@ #include "gettext.h" #define _(msgid) gettext (msgid) +static const struct xrchart_colour black = {0,0,0}; void xrchart_draw_scatterplot (const struct chart_item *chart_item, cairo_t *cr, @@ -47,15 +48,13 @@ xrchart_draw_scatterplot (const struct chart_item *chart_item, cairo_t *cr, const struct xrchart_colour *colour; if (spc->byvar) - byvar_width = var_get_width(spc->byvar); + byvar_width = var_get_width (spc->byvar); - xrchart_write_xscale (cr, geom, - spc->x_min, - spc->x_max); + xrchart_write_xscale (cr, geom, spc->x_min, spc->x_max); xrchart_write_yscale (cr, geom, spc->y_min, spc->y_max); xrchart_write_title (cr, geom, _("Scatterplot %s"), chart_item->title); - xrchart_write_xlabel (cr, geom, var_to_string(spc->xvar)); - xrchart_write_ylabel (cr, geom, var_to_string(spc->yvar)); + xrchart_write_xlabel (cr, geom, spc->xlabel); + xrchart_write_ylabel (cr, geom, spc->ylabel); cairo_save (cr); data = casereader_clone (spc->data); @@ -63,25 +62,25 @@ xrchart_draw_scatterplot (const struct chart_item *chart_item, cairo_t *cr, { if (spc->byvar) { - const union value *val = case_data(c,spc->byvar); - for(i=0;ibyvar,val,MV_ANY)) - ds_put_cstr(&label,"missing"); + ds_init_empty (&label); + if (var_is_value_missing (spc->byvar,val,MV_ANY)) + ds_put_cstr (&label,"missing"); else - var_append_value_name(spc->byvar,val,&label); - value_clone(&catvals[n_catvals++],val,byvar_width); + var_append_value_name (spc->byvar,val,&label); + value_clone (&catvals[n_catvals++],val,byvar_width); geom->n_datasets++; geom->dataset = xrealloc (geom->dataset, geom->n_datasets * sizeof (*geom->dataset)); - geom->dataset[geom->n_datasets - 1] = strdup(ds_cstr(&label)); - ds_destroy(&label); + geom->dataset[geom->n_datasets - 1] = strdup (ds_cstr(&label)); + ds_destroy (&label); } else /* Use the last plot category */ { @@ -89,29 +88,27 @@ xrchart_draw_scatterplot (const struct chart_item *chart_item, cairo_t *cr, i--; } } + colour = &data_colour[i % XRCHART_N_COLOURS]; } - colour = &data_colour [ i % XRCHART_N_COLOURS]; + else + colour = &black; + cairo_set_source_rgb (cr, colour->red / 255.0, colour->green / 255.0, colour->blue / 255.0); xrchart_datum (cr, geom, 0, - case_data (c, spc->xvar)->f, - case_data (c, spc->yvar)->f); + case_data_idx (c, SP_IDX_X)->f, + case_data_idx (c, SP_IDX_Y)->f); } casereader_destroy (data); - cairo_restore(cr); + cairo_restore (cr); for(i=0;ibyvar) - xrchart_write_legend(cr, geom); - - - - // xrchart_line (cr, geom, npp->slope, npp->intercept, - // npp->y_first, npp->y_last, XRCHART_DIM_Y); + xrchart_write_legend (cr, geom); }