Interactive plotting of graphs

tkplot and its companion functions serve as an interactive graph drawing facility. Not all parameters of the plot can be changed interactively right now though, eg. the colors of vertices, edges, and also others have to be pre-defined.

tkplot (graph, layout = layout.random, layout.par = list(), 
    labels = NULL, label.color = "darkblue", label.font = NULL, = -pi/4, label.dist = 0, vertex.color = "SkyBlue2", 
    vertex.size = 15, edge.color = "darkgrey", edge.width = 1,
    edge.labels=NA, ...)

tkplot.close(, window.close = TRUE), width = NULL, height = NULL) tkplot.reshape(, newlayout, ...) tkplot.export.postscript( tkplot.getcoords(, norm = FALSE) tkplot.rotate(, degree = NULL, rad = NULL)

The graph to plot.
Either a function, or a character string or a numeric matrix. It specifies how the vertices will be placed on the plot.

If it is a function, this function will be called with the graph and layout.param as parameters

A named list specifying the optional parameters of the layout function, only used if the layout argument is a function. The parameters themselves are layout function dependent, they are discussed in the
Gives the labels to use for the vertices. It can be a numeric or character vector. If NA the plot will have no labels, if NULL numeric ids starting from one will be used. If a character vector of length one with prefi
The color of the labels. If it is a character scalar with prefix a: then the corresponding vertex attribute will be used. Otherwise if it is a vector of length one then all labels will be the same color. It can al
The font for the labels, a tkfont object, by default 16pt Helvetica bold is used.
Governs the placement of the vertex labels. 0 is right, pi/2 is down, pi is left. This argument can be a constant (for all labels) or a numeric vector. If it is a constant string with prefix a: then the correspond
Numeric constant, gives the distance between the labels and the vertices. 1 is some ideal distance, based on the vertex and label sizes. Use 0 for drawing the labels on the vertices.
The color of the vertices, either a character constant with prefix a: for using an attribute or without it: a constant color for all vertices, or a numeric or character or numeric vector giving the different color
The size of the vertices. Either a numeric constant, or a numeric vector, or a string with prefix a: giving the vertex attribute to use.
The color of the edges. Either a character vector with prefix a: naming the edge attribute to use or one without it, or a numeric or character vector giving the colors for each edge.
The width of the edges. Either a numeric constant or a numeric vector, or a string with prefix a: giving the edge attribute to use.
Labels for the edges, this will be converted to a character vector. The default is NA which suppresses edge labels. The vector might contain NA's as well to suppress labels for some edges.
The id of the tkplot window to close.
Leave this on the default value.
The width of the rectangle for generating new coordinates.
The height of the rectangle for generating new coordinates.
The new layout, see the layout parameter of tkplot.
Logical, should we norm the coordinates.
The degree to rotate the plot.
The degree to rotate the plot, in radian.
Not used right now.

tkplot is an interactive graph drawing facility. It is not very well developed at this stage, but it should be still useful.

It's hangling should be quite straightforward most of the time, here are some remarks and hints.

There are different popup menus, activated by the right mouse button, for vertices and edges. Both operate on the current selection if the vertex/edge under the cursor is part of the selection and operate on the vertex/edge under the cursor if it is not.

One selection can be active at a time, either a vertex or an edge selection. A vertex/edge can be added to a selection by holding the control key while clicking on it with the left mouse button. Doing this again deselect the vertex/edge.

Selections can be made also from the Select menu. The `Select some vertices' dialog allows to give an expression for the vertices to be selected: this can be a list of numeric R expessions separated by commas, like `1,2:10,12,14,15' for example. Similarly in the `Select some edges' dialog two such lists can be given and all edges connecting a vertex in the first list to one in the second list will be selected.

In the color dialog a color name like 'orange' or RGB notation can also be used.

The tkplot command creates a new Tk window with the graphical representation of graph. The command returns an integer number, the tkplot id. The other commands utilize this id to be able to query or manipulate the plot.

tkplot.close closes the Tk plot with id closes all Tk plots. fits the plot to the given rectange (width and height), if some of these are NULL the actual phisical width od height of the plot window is used.

tkplot.reshape applies a new layout to the plot, its optional parameters will be collected to a list analogous to layout.par.

tkplot.export.postscript creates a dialog window for saving the plot in postscript format.

tkplot.getcoords returns the coordinates of the vertices in a matrix. Each row corresponds to one vertex. shifts the figure to the center of its plot window.

tkplot.rotate rotates the figure, its parameter can be given either in degrees or in radians.


  • tkplot returns an integer, the id of the plot, this can be used to manipulate it from the command line.

    tkplot.getcoords returns a matrix with the coordinates.

    tkplot.close,,, tkplot.reshape, tkplot.export.postscript, and tkplot.rotate return NULL invisibly.

See Also

plot.igraph, layout

  • tkplot
  • tkplot.close
  • tkplot.reshape
  • tkplot.export.postscript
  • tkplot.getcoords
  • tkplot.rotate
g <- graph.ring(10)
Documentation reproduced from package igraph, version 0.1.2, License: GPL version 2 or later (June, 1991)

Community examples

Looks like there are no examples yet.