/* PSPP - a program for statistical analysis.
- Copyright (C) 2009 Free Software Foundation, Inc.
+ Copyright (C) 2009, 2011 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
uint8_t blue;
};
+struct xrchart_axis
+{
+ int data_max;
+ int data_min;
+
+ double scale;
+ double min;
+ double max;
+};
+
/* The geometry of a chart. */
struct xrchart_geometry
{
- int data_top;
- int data_right;
- int data_bottom;
- int data_left;
-
- int abscissa_top;
+ /* Bottom of the abscissa segment */
+ int abscissa_bottom;
- int ordinate_right;
+ /* Left of the ordinate segment */
+ int ordinate_left;
int title_bottom;
struct xrchart_colour fill_colour;
/* Stuff particular to cartesians and boxplots. */
- double ordinate_scale;
- double abscissa_scale;
- double x_min;
- double x_max;
- double y_min;
- double y_max;
+ struct xrchart_axis axis[2];
+
+ /* True iff a path is currently being drawn */
bool in_path;
};
double width, double length);
void xrchart_geometry_free (cairo_t *, struct xrchart_geometry *);
-#define XRCHART_N_COLOURS 9
+#define XRCHART_N_COLOURS 27
extern const struct xrchart_colour data_colour[];
enum tick_orientation
{
- TICK_ABSCISSA=0,
- TICK_ORDINATE
+ SCALE_ABSCISSA=0,
+ SCALE_ORDINATE
};
enum xrmarker_type
void xrchart_label (cairo_t *, int horz_justify, int vert_justify,
double font_size, const char *);
+void xrchart_label_rotate (cairo_t *cr, int horz_justify, int vert_justify,
+ double font_size, const char *string, double angle);
+
+
/* Draw a tick mark at position
If label is non zero, then print it at the tick mark
*/
void draw_tick (cairo_t *, const struct xrchart_geometry *,
- enum tick_orientation orientation, double position,
+ enum tick_orientation orientation,
+ bool rotated,
+ double position,
const char *label, ...)
- PRINTF_FORMAT (5, 6);
+ PRINTF_FORMAT (6, 7);
/* Write the title on a chart*/
struct xrchart_geometry *);
void xrchart_draw_scree (const struct chart_item *, cairo_t *,
struct xrchart_geometry *);
+void xrchart_draw_spreadlevel (const struct chart_item *, cairo_t *,
+ struct xrchart_geometry *);
+void xrchart_draw_scatterplot (const struct chart_item *, cairo_t *,
+ struct xrchart_geometry *);
+
#endif /* output/cairo-chart.h */