see this
gtk extra plot... By: ro21han (1 replies) Tue, 03/11/2008 - 10:54
- see this By: gtkgalaxy (03/14/2008 - 17:06)
Recent blog posts
- Nirmitsu Technologies Launches NU2000, NU2100 and NU4000
- Gtk and Embedded Devices - part 1
- gtk extra plot...
- GtkSheet with freeze panes
- Fake a signal
- Query::Setting Color of submenu Widgets
- how to color the combo box entry
- Multiline Text Editing Widget
- Setting Color of submenu Widgets
- GtkFB (Gtk+) for the Linux Framebuffer
see this
please look at testgtkplot.c in gtkextra source base
i just copied here some part extracted from that
/* Sample code from www.gtkhelp.com
* Gtk Help Team
*
*
*
*
*
*
*
*
*
*
*
*
*/
#include
#include
#include
#include
#include
#include
GtkPlotData *dataset[5];
//this function
//taken directly from testgtkplot.c
//shipped with gtkextra code
//please for further all code samples
//refer to gtkextra sourceforge.net cvs
//or download gtkextra source from
//ubuntu/debian apt repository.
//apt-get source libgtkextra-dev
// or
//apt-get source libgtkextra-x11-2.0-1
//
gdouble function(GtkPlot *plot, GtkPlotData *data, gdouble x, gboolean *err)
{
gdouble y;
*err = FALSE;
y = (-.5+.3*sin(3.*x)*sin(50.*x));
return y;
}
void
build_example1(GtkWidget *plot)
{
GdkColor color;
GtkPlotAxis *axis;
static gdouble px1[]={0., 0.2, 0.4, 0.6, 0.8, 1.0};
static gdouble py1[]={.2, .4, .5, .35, .30, .40};
static gdouble dx1[]={.2, .2, .2, .2, .2, .2};
static gdouble dy1[]={.1, .1, .1, .1, .1, .1};
static gdouble px2[]={0., -0.2, -0.4, -0.6, -0.8, -1.0};
static gdouble py2[]={.2, .4, .5, .35, .30, .40};
static gdouble dx2[]={.2, .2, .2, .2, .2, .2};
static gdouble dy2[]={.1, .1, .1, .1, .1, .1};
/* CUSTOM TICK LABELS */
gtk_plot_axis_use_custom_tick_labels(gtk_plot_get_axis(GTK_PLOT(plot), GTK_PLOT_AXIS_RIGHT), TRUE);
axis = gtk_plot_get_axis(GTK_PLOT(plot), GTK_PLOT_AXIS_RIGHT);
dataset[0] = GTK_PLOT_DATA(gtk_plot_data_new());
gtk_plot_add_data(GTK_PLOT(plot), dataset[0]);
gtk_widget_show(GTK_WIDGET(dataset[0]));
gtk_plot_data_set_points(dataset[0], px1, py1, dx1, dy1, 6);
gtk_plot_data_add_marker(dataset[0], 3);
/*
gtk_plot_data_gradient_set_visible(dataset[0], TRUE);
*/
gdk_color_parse("red", &color);
gdk_color_alloc(gdk_colormap_get_system(), &color);
gtk_plot_data_set_symbol(dataset[0],
GTK_PLOT_SYMBOL_DIAMOND,
GTK_PLOT_SYMBOL_EMPTY,
10, 2, &color, &color);
gtk_plot_data_set_line_attributes(dataset[0],
GTK_PLOT_LINE_SOLID,
0, 0, 1, &color);
gtk_plot_data_set_connector(dataset[0], GTK_PLOT_CONNECT_SPLINE);
gtk_plot_data_show_yerrbars(dataset[0]);
gtk_plot_data_set_legend(dataset[0], "Spline + EY");
dataset[3] = GTK_PLOT_DATA(gtk_plot_data_new());
gtk_plot_add_data(GTK_PLOT(plot), dataset[3]);
gtk_widget_show(GTK_WIDGET(dataset[3]));
gtk_plot_data_set_points(dataset[3], px2, py2, dx2, dy2, 6);
gtk_plot_data_set_symbol(dataset[3],
GTK_PLOT_SYMBOL_SQUARE,
GTK_PLOT_SYMBOL_OPAQUE,
8, 2,
&plot->style->black,
&plot->style->black);
gtk_plot_data_set_line_attributes(dataset[3],
GTK_PLOT_LINE_SOLID,
0, 0, 4, &color);
gtk_plot_data_set_connector(dataset[3], GTK_PLOT_CONNECT_STRAIGHT);
gtk_plot_data_set_x_attributes(dataset[3],
GTK_PLOT_LINE_SOLID,
0, 0, 0, &plot->style->black);
gtk_plot_data_set_y_attributes(dataset[3],
GTK_PLOT_LINE_SOLID,
0, 0, 0, &plot->style->black);
gtk_plot_data_set_legend(dataset[3], "Line + Symbol");
gdk_color_parse("blue", &color);
gdk_color_alloc(gdk_colormap_get_system(), &color);
dataset[1] = gtk_plot_add_function(GTK_PLOT(plot), (GtkPlotFunc)function);
gtk_widget_show(GTK_WIDGET(dataset[1]));
gtk_plot_data_set_line_attributes(dataset[1],
GTK_PLOT_LINE_SOLID,
0, 0, 0, &color);
}
//main code
main (int argc, char **argv)
{
GtkWidget *plot;
gint width = GTK_PLOT_LETTER_W ;
gint height = GTK_PLOT_LETTER_H ;
GtkWidget *plotobj, *scroll;
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (window, 400, 400);
gtk_window_set_title (GTK_WINDOW (window), "TEST");
scroll = gtk_scrolled_window_new (NULL,NULL);
plotobj = gtk_plot_canvas_new(width,height,1.0 );
GTK_PLOT_CANVAS_SET_FLAGS(GTK_PLOT_CANVAS(plotobj), GTK_PLOT_CANVAS_DND_FLAGS);
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll), plotobj);
plot = gtk_plot_new_with_size(NULL,0.6,0.3);
build_example1(plot);
gtk_widget_show_all (window);
gtk_main ();
}
Makefile:
CC=gcc
CFLAGS += -g $(shell pkg-config --cflags gtk+-2.0 gtkextra-2.0)
LDFLAGS += $(shell pkg-config --libs gtk+-2.0 gtkextra-2.0)
SRCS := simpleplot.c
OBJS := $(SRCS:.c=.o)
all:plot
plot:$(OBJS)
$(CC) $(LDFLAGS) $(OBJS) -o $@
%.o:%.c
$(CC) -c $^ $(CFLAGS) -o $@
clean:
rm -f *.o core spreadsheet