graph.h revision 7175d91deff20b1408450c231b2b445ea28f7f29
1af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameron#ifndef GRAPH_H 2af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameron#define GRAPH_H 3af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameron 4af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameronstruct graph; 5af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameron 6cae0872709f690086f896f7327e136c7db7ba567Stephen M. Cameron#define INVISIBLE_COLOR (-1.0) 7cae0872709f690086f896f7327e136c7db7ba567Stephen M. Cameron 8f3e8440f75f98ced28cdd19ba785718e734cf7c5Jens Axboestruct graph *graph_new(unsigned int xdim, unsigned int ydim, const char *font); 93ea48b883bcac5ad0c119205805b741af45427e3Stephen M. Cameronvoid graph_set_size(struct graph *g, unsigned int xdim, unsigned int ydim); 10af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameronvoid bar_graph_draw(struct graph *g, cairo_t *cr); 11af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameronvoid line_graph_draw(struct graph *g, cairo_t *cr); 12af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameronvoid line_graph_set_data_count_limit(struct graph *g, int per_label_limit); 13af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameronvoid graph_title(struct graph *g, const char *title); 14af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameronvoid graph_x_title(struct graph *g, const char *title); 15af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameronvoid graph_y_title(struct graph *g, const char *title); 16af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameronvoid graph_add_label(struct graph *g, const char *label); 1709ad20ff60eb8c11edf407c4060062dae187f5e7Stephen M. Cameronint graph_add_data(struct graph *g, const char *label, const double value); 1809ad20ff60eb8c11edf407c4060062dae187f5e7Stephen M. Cameronint graph_add_xy_data(struct graph *g, const char *label, 19af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameron const double x, const double y); 20af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameronvoid graph_set_color(struct graph *g, const char *label, 21af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameron double red, double green, double blue); 22af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameronvoid graph_free(struct graph *bg); 23af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameron 247175d91deff20b1408450c231b2b445ea28f7f29Stephen M. Camerontypedef void (*graph_axis_unit_change_callback)(struct graph *g, int power_of_ten); 257175d91deff20b1408450c231b2b445ea28f7f29Stephen M. Cameronvoid graph_x_axis_unit_change_notify(struct graph *g, graph_axis_unit_change_callback f); 267175d91deff20b1408450c231b2b445ea28f7f29Stephen M. Cameronvoid graph_y_axis_unit_change_notify(struct graph *g, graph_axis_unit_change_callback f); 27af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameron 28af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameron#endif 29af58ef32b7398d791168af54aa4aab0b23192f90Stephen M. Cameron 30