Name

Gtkplot3d - 3d scientific plots widget for gtk+

Synopsis


GtkType
gtk_plot3d_get_type
(void); 
GtkWidget* 
gtk_plot3d_new
(GdkDrawable *drawable); 
GtkWidget* 
gtk_plot3d_new_with_size
(GdkDrawable *drawable,
gdouble width, gdouble height); 
void
gtk_plot3d_construct
(GtkPlot3D *plot,
GdkDrawable *drawable); 
void
gtk_plot3d_construct_with_size
(GtkPlot3D *plot,
GdkDrawable *drawable,
gdouble width, gdouble height); 
void
gtk_plot3d_autoscale
(GtkPlot3D *plot); 
 
 
 
 
Rotations around global axes
 
 
 
void
gtk_plot3d_rotate
(GtkPlot3D *plot, 
gdouble angle_x,
gdouble angle_y,
gdouble angle_z); 
void
gtk_plot3d_rotate_vector
(GtkPlot3D *plot,
GtkPlotVector *vector,
gdouble a1, 
gdouble a2, 
gdouble a3);
 
 
 
 
Rotations around local axes
 
 
 
void
gtk_plot3d_reset_angles
(GtkPlot3D *plot);  
void
gtk_plot3d_rotate_x
(GtkPlot3D *plot, 
gdouble angle); 
void
gtk_plot3d_rotate_y
(GtkPlot3D *plot, 
gdouble angle); 
void
gtk_plot3d_rotate_z
(GtkPlot3D *plot, 
gdouble angle); 
void
gtk_plot3d_get_pixel
(GtkPlot3D *plot, 
gdouble x, 
gdouble y, 
gdouble z,
gdouble *px, 
gdouble *py,
gdouble *pz); 
void
gtk_plot3d_set_xrange
(GtkPlot3D *plot, 
gdouble min, gdouble max); 
void
gtk_plot3d_set_yrange
(GtkPlot3D *plot, 
gdouble min, gdouble max); 
void
gtk_plot3d_set_zrange
(GtkPlot3D *plot, 
gdouble min, gdouble max); 
void
gtk_plot3d_set_xfactor
(GtkPlot3D *plot, 
gdouble xfactor); 
void
gtk_plot3d_set_yfactor
(GtkPlot3D *plot, 
gdouble yfactor); 
void
gtk_plot3d_set_zfactor
(GtkPlot3D *plot, 
gdouble zfactor); 
gdouble
gtk_plot3d_get_xfactor
(GtkPlot3D *plot); 
gdouble
gtk_plot3d_get_yfactor
(GtkPlot3D *plot); 
gdouble
gtk_plot3d_get_zfactor
(GtkPlot3D *plot); 
 
 
 
 
Axes
 
 
 
GtkPlotAxis *
gtk_plot3d_get_axis
(GtkPlot3D *plot,
GtkPlotOrientation orientation); 
GtkPlotAxis *
gtk_plot3d_get_side
(GtkPlot3D *plot,
GtkPlotSide side); 
void
gtk_plot3d_axis_show_major_ticks
(GtkPlot3D *plot,
GtkPlotSide side,
gint ticks_mask); 
void
gtk_plot3d_axis_show_minor_ticks
(GtkPlot3D *plot,
GtkPlotSide side,
gint ticks_mask); 
void
gtk_plot3d_axis_show_labels
(GtkPlot3D *plot,
GtkPlotSide side,
gint label_mask); 
void
gtk_plot3d_axis_show_title
(GtkPlot3D *plot,
GtkPlotSide side); 
void
gtk_plot3d_axis_hide_title
(GtkPlot3D *plot,
GtkPlotSide side); 
void
gtk_plot3d_axis_set_ticks
(GtkPlot3D *plot,
GtkPlotOrientation axis,
gdouble major_step,
gint nminor); 
void
gtk_plot3d_axis_set_major_ticks
(GtkPlot3D *plot,
GtkPlotOrientation axis,
gdouble major_step); 
void
gtk_plot3d_axis_set_minor_ticks
(GtkPlot3D *plot,
GtkPlotOrientation axis,
gint nminor); 
void
gtk_plot3d_axis_set_ticks_length
(GtkPlot3D *plot,
GtkPlotOrientation axis,
gint length); 
void
gtk_plot3d_axis_set_ticks_width
(GtkPlot3D *plot,
GtkPlotOrientation axis,
gfloat width);
void
gtk_plot3d_axis_show_ticks
(GtkPlot3D *plot,
GtkPlotSide side,
gint major_mask,
gint minor_mask); 
void
gtk_plot3d_set_titles_offset
(GtkPlot3D *plot,
gint offset); 
void
gtk_plot3d_get_titles_offset
(GtkPlot3D *plot); 
 
 
 
 
Grids
 
 
 
void
gtk_plot3d_major_grids_set_visible
(GtkPlot3D *plot,
gboolean x,
gboolean y,
gboolean z); 
void
gtk_plot3d_minor_grids_set_visible
(GtkPlot3D *plot,
gboolean x,
gboolean y,
gboolean z); 
void
gtk_plot3d_major_grids_visible
GtkPlot3D *plot,
gboolean *x,
gboolean *y,
gboolean *z); 
void
gtk_plot3d_minor_grids_visible
(GtkPlot3D *plot,
gboolean *x,
gboolean *y,
gboolean *z); 
void
gtk_plot3d_major_zgrid_set_attributes
(GtkPlot3D *plot,
GtkPlotLineStyle style, 
gfloat width, const GdkColor *color);
void
gtk_plot3d_major_zgrid_get_attributes
GtkPlot3D *plot,
GtkPlotLineStyle *style,
gfloat *width,
GdkColor *color); 
void
gtk_plot3d_minor_zgrid_set_attributes
(GtkPlot3D *plot,
GtkPlotLineStyle style,
gfloat width,
const GdkColor *color); 
void
gtk_plot3d_minor_zgrid_get_attributes
(GtkPlot3D *plot,
GtkPlotLineStyle *style,
gfloat *width,
GdkColor *color);
       

Object Hierarchy

 


Args

 

Signal Prototypes

void (* get_pixel) (GtkWidget *widget, 
                    gdouble x, gdouble y, gdouble z,
                    gdouble *px, gdouble *py, gdouble *pz); 

Description


GtkPlot is a widget for GTK+. It allows to draw high quality scientific plots in two dimensions with a look and feel very similar to Microcal Origin for Windows.
The distribution includes GtkPlotCanvas subclass, and a demo program showing two layered plots with different kind of curves.
You can choose between a number of symbol types, lines, connectors -straight lines, steps, splines-, and change their attributes -color, size, width-.
You can also plot functions, add error bars, edit legends, rotate and move axis titles, change axis properties, etc.

The package also includes GtkPlot3D and GtkPlotPolar.
GtkPlotCanvas is a GtkFixed subclass and allows to DnD plots, points, and child objects (text, axis titles). You can move them or resize your plots dragging with the mouse!
The distribution includes also a PostScript driver.


Details

struct GtkPlotVector;
struct GtkPlotVector;


Screenshot


gtk_plot3d_get_type ()

GtkType gtk_plot3d_get_type (void); 


Returns  

 


gtk_plot3d_new ()

GtkWidget* gtk_plot3d_new (GdkDrawable *drawable); 

Create a new GtkPlot3d widget.

drawable a GdkDrawable widget
Returns a new GtkPlot3d widget


gtk_plot3d_new_with_size ()

GtkWidget* gtk_plot3d_new_with_size (GdkDrawable *drawable,
                                     gdouble width, gdouble height); 

Create a new GtkPlot3d widget with specified size

drawable a GdkDrawable widget
width,height width,height of the widget
Returns a new GtkPlot3d widget



gtk_plot3d_construct ()

void gtk_plot3d_construct (GtkPlot3D *plot,
                           GdkDrawable *drawable); 

Initialize a GtkPlot3D structure.

plot a GtkPlot3d widget
drawable a GdkDrawable widget


gtk_plot3d_construct_with_size ()

void gtk_plot3d_construct_with_size (GtkPlot3D *plot,
                                     GdkDrawable *drawable,
                                     gdouble width, gdouble height); 

Initialize a GtkPlot3D structure with certain values.

plot a GtkPlot3d widget
drawable a GdkDrawable widget
width,height width,height of the widget


gtk_plot3d_autoscale ()

void gtk_plot3d_autoscale (GtkPlot3D *plot); 

 

plot a GtkPlot3d widget


gtk_plot3d_rotate ()

void gtk_plot3d_rotate (GtkPlot3D *plot, 
                        gdouble angle_x,
                        gdouble angle_y,
                        gdouble angle_z); 

Rotate the widget with certain angles

plot a GtkPlot3d widget
angle_x,angle_y,angle_z angles of rotation on x,y,z directions


gtk_plot3d_rotate_vector ()

void gtk_plot3d_rotate_vector (GtkPlot3D *plot,
                               GtkPlotVector *vector,
                               gdouble a1, 
                               gdouble a2, 
                               gdouble a3);
               

Rotate the specified vector by angles.

plot a GtkPlot3d widget
vector GtkPlotVector widget
a1,a2,a3 angles of rotation


gtk_plot3d_reset_angles ()

void gtk_plot3d_reset_angles (GtkPlot3D *plot); 

Reset the angle of rotation of the plot

plot a GtkPlot3d widget


gtk_plot3d_rotate_x ()

void gtk_plot3d_rotate_x (GtkPlot3D *plot, 
                          gdouble angle); 

Rotate the 3d plot along x axis with a specified angle

plot a GtkPlot3d widget
angle angle of rotation


gtk_plot3d_rotate_y ()

void gtk_plot3d_rotate_y (GtkPlot3D *plot, 
                          gdouble angle); 

Rotate the 3d plot along y axis with a specified angle

plot a GtkPlot3d widget
angle angle of rotation


gtk_plot3d_rotate_z ()

void gtk_plot3d_rotate_z (GtkPlot3D *plot, 
                          gdouble angle); 

Rotate the 3d plot along z axis with a specified angle

plot a GtkPlot3d widget
angle angle of rotation


gtk_plot3d_get_pixel ()

void gtk_plot3d_get_pixel (GtkPlot3D *plot, 
                           gdouble x, gdouble y, gdouble z,
                           gdouble *px, gdouble *py, gdouble *pz); 

 

plot  
x,y,z  
*px,*py,*pz  


gtk_plot3d_set_xrange ()

void gtk_plot3d_set_xrange (GtkPlot3D *plot, 
                            gdouble min, gdouble max); 

 

plot  
min,max  


gtk_plot3d_set_yrange ()

void gtk_plot3d_set_yrange (GtkPlot3D *plot, 
                            gdouble min, gdouble max); 

 

plot  
min,max  


gtk_plot3d_set_zrange ()

void gtk_plot3d_set_zrange (GtkPlot3D *plot, 
                            gdouble min, gdouble max); 

 

plot  
min,max  


gtk_plot3d_set_xfactor ()

void gtk_plot3d_set_xfactor (GtkPlot3D *plot, 
                             gdouble xfactor); 

 

plot  
xfactor  


gtk_plot3d_set_yfactor ()

void gtk_plot3d_set_xfactor (GtkPlot3D *plot, 
                             gdouble yfactor); 

 

plot  
yfactor  


gtk_plot3d_set_zfactor ()

void gtk_plot3d_set_zfactor (GtkPlot3D *plot, 
                             gdouble zfactor); 

 

plot  
zfactor  


gtk_plot3d_get_xfactor ()

gdouble gtk_plot3d_get_xfactor (GtkPlot3D *plot); 

 

plot  


gtk_plot3d_get_yfactor ()

gdouble gtk_plot3d_get_yfactor (GtkPlot3D *plot); 

 

plot  


gtk_plot3d_get_zfactor ()

gdouble gtk_plot3d_get_zfactor (GtkPlot3D *plot); 

 

plot  


gtk_plot3d_plane_set_color ()

void gtk_plot3d_plane_set_color (GtkPlot3D *plot,
                                 GtkPlotPlane plane,
                                 const GdkColor *color); 

Set the color of the plane

plot a GtkPlot3d widget
plane GtkPlotPlane widget
color the GdkCOlor of the plane


gtk_plot3d_plane_set_visible ()

void gtk_plot3d_plane_set_visible (GtkPlot3D *plot,
                                   GtkPlotPlane plane,
                                   gboolean visible); 

Set the visibility of the plane.

plot a GtkPlot3d widget
plane GtkPlotPlane widget
visible TRUE or FALSE


gtk_plot3d_plane_visible ()

gboolean gtk_plot3d_plane_visible (GtkPlot3D *plot,
                                   GtkPlotPlane plane); 

Get the visibility of the plane

plot a GtkPlot3d widget
plane GtkPlotPlane widget
Returns TRUE or FALSE


gtk_plot3d_corner_set_visible ()

void gtk_plot3d_corner_set_visible (GtkPlot3D *plot,
                                    gboolean visible); 

 

plot a GtkPlot3d widget
visible TRUE or FALSE


gtk_plot3d_corner_visible ()

gboolean gtk_plot3d_corner_visible (GtkPlot3D *plot); 

 

plot a GtkPlot3d widget
Returns TRUE or FALSE


gtk_plot3d_corner_set_attributes ()

void gtk_plot3d_corner_set_attributes(GtkPlot3D *plot,
                                     GtkPlotLineStyle style, gfloat width,
                                     const GdkColor *color); 

 

plot a GtkPlot3d widget
style GTK_PLOT_LINE_NONE ,
GTK_PLOT_LINE_SOLID ,
GTK_PLOT_LINE_DOTTED ,
GTK_PLOT_LINE_DASHED ,
GTK_PLOT_LINE_DOT_DASH ,
GTK_PLOT_LINE_DOT_DOT_DASH ,
GTK_PLOT_LINE_DOT_DASH_DASH
width  
color  


gtk_plot3d_corner_get_attributes ()

void gtk_plot3d_corner_get_attributes(GtkPlot3D *plot,
                                      GtkPlotLineStyle *style,
                                      gfloat *width,
                                      GdkColor *color); 

 

plot a GtkPlot3d widget
style GTK_PLOT_LINE_NONE ,
GTK_PLOT_LINE_SOLID ,
GTK_PLOT_LINE_DOTTED ,
GTK_PLOT_LINE_DASHED ,
GTK_PLOT_LINE_DOT_DASH ,
GTK_PLOT_LINE_DOT_DOT_DASH ,
GTK_PLOT_LINE_DOT_DASH_DASH
width  
color  


gtk_plot3d_frame_set_attributes ()

void gtk_plot3d_frame_set_attributes (GtkPlot3D *plot,
                                      GtkPlotLineStyle style,
                                      gfloat width,
                                      const GdkColor *color); 

Set the attributes of the frame in the plot

plot a GtkPlot3d widget
style GTK_PLOT_LINE_NONE ,
GTK_PLOT_LINE_SOLID ,
GTK_PLOT_LINE_DOTTED ,
GTK_PLOT_LINE_DASHED ,
GTK_PLOT_LINE_DOT_DASH ,
GTK_PLOT_LINE_DOT_DOT_DASH ,
GTK_PLOT_LINE_DOT_DASH_DASH
width width of the frame
color color of the frame


gtk_plot3d_frame_get_attributes ()

void gtk_plot3d_frame_get_attributes (GtkPlot3D *plot,
                                     GtkPlotLineStyle *style,
                                     gfloat *width,
                                     GdkColor *color);
               

Get the attributes of the frame in a plot

plot a GtkPlot3d widget
style GTK_PLOT_LINE_NONE ,
GTK_PLOT_LINE_SOLID ,
GTK_PLOT_LINE_DOTTED ,
GTK_PLOT_LINE_DASHED ,
GTK_PLOT_LINE_DOT_DASH ,
GTK_PLOT_LINE_DOT_DOT_DASH ,
GTK_PLOT_LINE_DOT_DASH_DASH
width width of the frame
color color of the frame


gtk_plot3d_get_axis ()

GtkPlotAxis * gtk_plot3d_get_axis (GtkPlot3D *plot,
                                  GtkPlotOrientation orientation); 

 

plot a GtkPlot3d widget
orientation GTK_PLOT_AXIS_X ,
GTK_PLOT_AXIS_Y ,
GTK_PLOT_AXIS_Z ,
Return GTK_PLOT_AXIS_LEFT ,
GTK_PLOT_AXIS_RIGHT ,
GTK_PLOT_AXIS_TOP ,
GTK_PLOT_AXIS_BOTTOM


gtk_plot3d_get_side ()

GtkPlotAxis * gtk_plot3d_get_side (GtkPlot3D *plot,
                                   GtkPlotSide side); 

 

plot a GtkPlot3d widget
side GTK_PLOT_SIDE_XY
GTK_PLOT_SIDE_XZ
GTK_PLOT_SIDE_YX
GTK_PLOT_SIDE_YZ
GTK_PLOT_SIDE_ZX
GTK_PLOT_SIDE_ZY
Return GTK_PLOT_AXIS_LEFT ,
GTK_PLOT_AXIS_RIGHT ,
GTK_PLOT_AXIS_TOP ,
GTK_PLOT_AXIS_BOTTOM


gtk_plot3d_axis_show_major_ticks ()

void gtk_plot3d_axis_show_major_ticks(GtkPlot3D *plot,
                                     GtkPlotSide side,
                                     gint ticks_mask); 

 

plot a GtkPlot3d widget
side GTK_PLOT_SIDE_XY
GTK_PLOT_SIDE_XZ
GTK_PLOT_SIDE_YX
GTK_PLOT_SIDE_YZ
GTK_PLOT_SIDE_ZX
GTK_PLOT_SIDE_ZY
ticks_mask  


gtk_plot3d_axis_show_minor_ticks ()

void gtk_plot3d_axis_show_minor_ticks(GtkPlot3D *plot,
                                     GtkPlotSide side,
                                     gint ticks_mask); 

 

plot a GtkPlot3d widget
side GTK_PLOT_SIDE_XY
GTK_PLOT_SIDE_XZ
GTK_PLOT_SIDE_YX
GTK_PLOT_SIDE_YZ
GTK_PLOT_SIDE_ZX
GTK_PLOT_SIDE_ZY
ticks_mask  


gtk_plot3d_axis_show_labels ()

void gtk_plot3d_axis_show_labels (GtkPlot3D *plot,
                                  GtkPlotSide side,
                                  gint label_mask); 

 

plot a GtkPlot3d widget
side GTK_PLOT_SIDE_XY
GTK_PLOT_SIDE_XZ
GTK_PLOT_SIDE_YX
GTK_PLOT_SIDE_YZ
GTK_PLOT_SIDE_ZX
GTK_PLOT_SIDE_ZY
label_mask  


gtk_plot3d_axis_show_title ()

void gtk_plot3d_axis_show_title (GtkPlot3D *plot,
                                GtkPlotSide side); 

Show the axis title.

plot a GtkPlot3d widget
side GTK_PLOT_SIDE_XY
GTK_PLOT_SIDE_XZ
GTK_PLOT_SIDE_YX
GTK_PLOT_SIDE_YZ
GTK_PLOT_SIDE_ZX
GTK_PLOT_SIDE_ZY


gtk_plot3d_axis_hide_title ()

void gtk_plot3d_axis_hide_title (GtkPlot3D *plot,
                                GtkPlotSide side); 

Hide the axis title

plot a GtkPlot3d widget
side GTK_PLOT_SIDE_XY
GTK_PLOT_SIDE_XZ
GTK_PLOT_SIDE_YX
GTK_PLOT_SIDE_YZ
GTK_PLOT_SIDE_ZX
GTK_PLOT_SIDE_ZY


gtk_plot3d_axis_set_ticks ()

void gtk_plot3d_axis_set_ticks (GtkPlot3D *plot,
                                GtkPlotOrientation axis,
                                gdouble major_step,
                                gint nminor); 

 

plot  
axis  
major_step  
nminor  


gtk_plot3d_axis_set_major_ticks ()

void gtk_plot3d_axis_set_major_ticks (GtkPlot3D *plot,
                                      GtkPlotOrientation axis,
                                      gdouble major_step); 

 

plot  
axis  
major_step  


gtk_plot3d_axis_set_minor_ticks ()

void gtk_plot3d_axis_set_minor_ticks (GtkPlot3D *plot,
                                      GtkPlotOrientation axis,
                                      gint nminor); 

 

plot  
axis  
nminor  


gtk_plot3d_axis_set_ticks_length ()

void gtk_plot3d_axis_set_ticks_length(GtkPlot3D *plot,
                                     GtkPlotOrientation axis,
                                     gint length); 

 

plot  
axis  
length  


gtk_plot3d_axis_set_ticks_width ()

void gtk_plot3d_axis_set_ticks_width (GtkPlot3D *plot,
                                      GtkPlotOrientation axis,
                                      gfloat width); 

 

plot  
axis  
width  


gtk_plot3d_axis_show_ticks ()

void gtk_plot3d_axis_show_ticks (GtkPlot3D *plot,
                                GtkPlotSide side,
                                gint major_mask,
                                gint minor_mask); 

 

plot  
side  
major_mask,minor_mask  


gtk_plot3d_set_titles_offset ()

void gtk_plot3d_set_titles_offset (GtkPlot3D *plot,
                                   gint offset); 

 

plot  
offset  


gtk_plot3d_get_titles_offset ()

gint gtk_plot3d_get_titles_offset (GtkPlot3D *plot); 

 

plot  
Returns  


gtk_plot3d_major_grids_set_visible ()

void gtk_plot3d_major_grids_set_visible (GtkPlot3D *plot,
                                         gboolean x,
                                         gboolean y,
                                         gboolean z); 

 

plot  
x,y,z  


gtk_plot3d_minor_grids_set_visible ()

void gtk_plot3d_minor_grids_set_visible (GtkPlot3D *plot,
                                         gboolean x,
                                         gboolean y,
                                         gboolean z); 

 

plot  
x,y,z  


gtk_plot3d_major_grids_visible ()

void gtk_plot3d_major_grids_visible (GtkPlot3D *plot,
                                     gboolean *x,
                                     gboolean *y,
                                     gboolean *z); 

 

plot  
x,y,z  


gtk_plot3d_minor_grids_visible ()

void gtk_plot3d_minor_grids_visible (GtkPlot3D *plot,
                                     gboolean *x,
                                     gboolean *y,
                                     gboolean *z); 

 

plot  
x,y,z  


gtk_plot3d_major_zgrid_set_attributes ()

void gtk_plot3d_major_zgrid_set_attributes (GtkPlot3D *plot,
                                           GtkPlotLineStyle style, gfloat width,
                                           const GdkColor *color); 

 

plot  
style  
width  
color  


gtk_plot3d_major_zgrid_get_attributes ()

void gtk_plot3d_major_zgrid_get_attributes (GtkPlot3D *plot,
                                            GtkPlotLineStyle *style,
                                            gfloat *width,
                                            GdkColor *color); 

 

plot  
style  
width  
color  


gtk_plot3d_minor_zgrid_set_attributes ()

void gtk_plot3d_minor_zgrid_set_attributes (GtkPlot3D *plot,
                                            GtkPlotLineStyle style,
                                            gfloat width,
                                            const GdkColor *color); 

 

plot  
style  
width  
color  


gtk_plot3d_minor_zgrid_get_attributes ()

void gtk_plot3d_minor_zgrid_get_attributes (GtkPlot3D *plot,
                                           GtkPlotLineStyle *style,
                                           gfloat *width,
                                           GdkColor *color); 

 

plot  
style  
width  
color  


Signals


The "get_pixel" signal

void (* get_pixel) (GtkWidget *widget, 
                    gdouble x, gdouble y, gdouble z,
                    gdouble *px, gdouble *py, gdouble *pz); 

 

widget  
x,y,z  
px,py,pz  


Structures

struct _GtkPlot3D
  GtkPlot plot;
GtkPlotVector e1, e2, e3;
GtkPlotVector center;
GtkPlotVector origin;
gdouble a1, a2, a3;
GtkPlotAxis *ax, *ay, *az;
gboolean xy_visible;
gboolean yz_visible;
gboolean zx_visible;
GdkColor color_xy;
GdkColor color_yz;
GdkColor color_zx;
GtkPlotLine frame;
GtkPlotLine corner;
gboolean corner_visible;
gdouble zmin, zmax;
GtkPlotScale zscale;
gint titles_offset;
GtkPlotAxis xy, xz;
GtkPlotAxis yx, yz;
GtkPlotAxis zx, zy;
gdouble xfactor, yfactor, zfactor;
struct _GtkPlotVector
 gdouble x, y, z;