如果您从 R 中使用 igraph,请使用此选项
tkplot {igraph} | R 文档 |
tkplot
及其配套函数用作交互式图形绘制工具。 目前,并非所有绘图参数都可以交互式更改,例如,顶点、边的颜色以及其他参数必须预先定义。
tkplot(graph, canvas.width = 450, canvas.height = 450, ...)
tk_close(tkp.id, window.close = TRUE)
tk_off()
tk_fit(tkp.id, width = NULL, height = NULL)
tk_center(tkp.id)
tk_reshape(tkp.id, newlayout, ..., params)
tk_postscript(tkp.id)
tk_coords(tkp.id, norm = FALSE)
tk_set_coords(tkp.id, coords)
tk_rotate(tkp.id, degree = NULL, rad = NULL)
tk_canvas(tkp.id)
图 |
要绘制的 |
canvas.width, canvas.height |
tkplot 绘图区域的大小。 |
... |
其他绘图参数。 有关完整列表,请参见 igraph.plotting。 |
tkp.id |
要关闭/重塑等的 tkplot 窗口的 ID。 |
window.close |
保持默认值即可。 |
width |
用于生成新坐标的矩形的宽度。 |
height |
用于生成新坐标的矩形的高度。 |
newlayout |
新布局,请参见 tkplot 的 |
params |
列表中的额外参数,传递给布局函数。 |
norm |
逻辑值,是否应标准化坐标。 |
coords |
两列数字矩阵,顶点的新坐标,采用绝对坐标。 |
degree |
绘图的旋转角度。 |
rad |
绘图的旋转角度,以弧度为单位。 |
tkplot
是一种交互式图形绘制工具。 它在这个阶段不是很完善,但应该仍然有用。
它的处理方式在大多数情况下应该非常简单,以下是一些说明和提示。
有不同的弹出菜单,通过鼠标右键激活,用于顶点和边。 如果光标下的顶点/边是选择的一部分,则两者都对当前选择进行操作;如果光标下的顶点/边不是选择的一部分,则对光标下的顶点/边进行操作。
一次只能激活一个选择,可以是顶点选择或边选择。 可以通过在按住 control
键的同时用鼠标左键单击顶点/边来将顶点/边添加到选择中。 再次执行此操作将取消选择顶点/边。
也可以从“选择”菜单中进行选择。“选择一些顶点”对话框允许给出要选择的顶点的表达式:这可以是逗号分隔的数字 R 表达式列表,例如“1,2:10,12,14,15
”。 类似地,在“选择一些边”对话框中,可以给出两个这样的列表,并且将选择所有连接第一个列表中的顶点到第二个列表中的顶点的边。
在颜色对话框中,也可以使用颜色名称(如“orange”)或 RGB 表示法。
tkplot
命令创建一个新的 Tk 窗口,其中包含 graph
的图形表示。 该命令返回一个整数,即 tkplot ID。 其他命令利用此 ID 能够查询或操作绘图。
tk_close
关闭 ID 为 tkp.id
的 Tk 绘图。
tk_off
关闭所有 Tk 绘图。
tk_fit
将绘图调整到给定的矩形(width
和 height
),如果其中一些为 NULL
,则使用绘图窗口的实际物理宽度或高度。
tk_reshape
将新布局应用于绘图,其可选参数将收集到类似于 layout.par
的列表中。
tk_postscript
创建一个对话窗口,用于将绘图保存为 PostScript 格式。
tk_canvas
返回属于图形绘图的 Tk 画布对象。 然后可以直接操作画布,例如,可以添加标签,可以通过编程方式将其保存到文件中等。请参见下面的示例。
tk_coords
返回矩阵中顶点的坐标。 每行对应一个顶点。
tk_set_coords
设置顶点的坐标。 两列矩阵指定新位置,每行对应一个顶点。
tk_center
将图形移动到其绘图窗口的中心。
tk_rotate
旋转图形,其参数可以以度或弧度给出。
tkplot
返回一个整数,即绘图的 ID,可用于从命令行操作它。
tk_canvas
返回 tkwin
对象,即 Tk 画布。
tk_coords
返回带有坐标的矩阵。
tk_close
、tk_off
、tk_fit
、tk_reshape
、tk_postscript
、tk_center
和 tk_rotate
不可见地返回 NULL
。
g <- make_ring(10) tkplot(g) ## Saving a tkplot() to a file programmatically g <- make_star(10, center=10) E(g)$width <- sample(1:10, ecount(g), replace=TRUE) lay <- layout_nicely(g) id <- tkplot(g, layout=lay) canvas <- tk_canvas(id) tcltk::tkpostscript(canvas, file="/tmp/output.eps") tk_close(id) ## Setting the coordinates and adding a title label g <- make_ring(10) id <- tkplot(make_ring(10), canvas.width=450, canvas.height=500) canvas <- tk_canvas(id) padding <- 20 coords <- norm_coords(layout_in_circle(g), 0+padding, 450-padding, 50+padding, 500-padding) tk_set_coords(id, coords) width <- as.numeric(tkcget(canvas, "-width")) height <- as.numeric(tkcget(canvas, "-height")) tkcreate(canvas, "text", width/2, 25, text="My title", justify="center", font=tcltk::tkfont.create(family="helvetica", size=20,weight="bold"))
Gabor Csardi csardi.gabor@gmail.com