X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fchart.h;h=c0ab0a2063106397e8c13205cb378521c0595f6a;hb=3dc1b25c7117a9f963a95d67397f5582b92356a2;hp=d4a8dd7434bdf99243a7110462c9f8f6422cecad;hpb=b321086267ad1014dc5d09886396cde30f094437;p=pspp-builds.git diff --git a/src/chart.h b/src/chart.h index d4a8dd74..c0ab0a20 100644 --- a/src/chart.h +++ b/src/chart.h @@ -14,17 +14,22 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ #ifndef CHART_H #define CHART_H +#include #include -#include +#include #include "var.h" +#ifndef NO_CHARTS +#include +#endif + /* Array of standard colour names */ extern const char *data_colour[]; @@ -32,8 +37,14 @@ extern const char *data_colour[]; struct chart { +#ifndef NO_CHARTS plPlotter *lp ; plPlotterParams *pl_params; +#else + void *lp; +#endif + char *filename; + FILE *file; /* The geometry of the chart See diagram at the foot of this file. @@ -59,7 +70,7 @@ struct chart { char fill_colour[10]; - /* Stuff Particular to Cartesians */ + /* Stuff Particular to Cartesians (and Boxplots ) */ double ordinate_scale; double abscissa_scale; double x_min; @@ -70,11 +81,10 @@ struct chart { }; -int chart_initialise(struct chart *ch); - -void chart_finalise(struct chart *ch); - +struct chart * chart_create(void); +void chart_submit(struct chart *ch); +double chart_rounded_tick(double tick); void chart_write_xlabel(struct chart *ch, const char *label); void chart_write_ylabel(struct chart *ch, const char *label); @@ -113,19 +123,35 @@ struct normal_curve }; -void draw_histogram(struct chart *ch, - const struct variable *v, - const struct freq_tab *frq_tab, - const char *title, - struct normal_curve *norm, - int show_normal); +void histogram_write_legend(struct chart *ch, const struct normal_curve *norm); -double chart_rounded_tick(double tick); +/* Plot a gsl_histogram */ +void histogram_plot(const gsl_histogram *hist, const char *factorname, + const struct normal_curve *norm, short show_normal); + + +/* Create a gsl_histogram and set it's parameters based upon + x_min, x_max and bins. + The caller is responsible for freeing the histogram. +*/ +gsl_histogram * histogram_create(double bins, double x_min, double x_max) ; + -void draw_piechart(struct chart *ch, const struct variable *v, - const struct freq_tab *); + + +struct slice { + const char *label; + double magnetude; +}; + + + + +/* Draw a piechart */ +void piechart_plot(const char *title, + const struct slice *slices, int n_slices); void draw_scatterplot(struct chart *ch); @@ -133,15 +159,31 @@ void draw_scatterplot(struct chart *ch); void draw_lineplot(struct chart *ch); +/* Set the scale on chart CH. + The scale extends from MIN to MAX . + TICK is the approximate number of tick marks. +*/ + void chart_write_xscale(struct chart *ch, - double min, double max, double tick); + double min, double max, int ticks); void chart_write_yscale(struct chart *ch, - double min, double max, double tick); + double min, double max, int ticks); void chart_datum(struct chart *ch, int dataset, double x, double y); +struct metrics; + + +void boxplot_draw_boxplot(struct chart *ch, + double box_centre, + double box_width, + struct metrics *m, + const char *name); + + +void boxplot_draw_yscale(struct chart *ch , double y_max, double y_min); enum CHART_DIM