| GTK-EXTRA - Reference Manual

| Home

## 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;

| Home |  |