更改tkplot的背景颜色(igraph,R)

3

我目前使用tkplot()绘制了一个网络图。最开始,我将这些图保存为png文件,但它们被压缩得太厉害了,而且我也喜欢tkplot的屏幕截图。有没有办法将绘图的背景改成白色?而不是浅灰色。

2个回答

5
一些需要澄清的事情。如果PNG过于拥挤,您可以创建一个更大的PNG文件,只需在png()调用中指定宽度和高度即可。或者您也可以使顶点变得更小。tkplot()的目的是有时手动调整顶点坐标更容易。其想法是调用tkplot(),调整坐标,通过tkplot.getcoords()查询调整后的坐标,然后将它们与plot()一起使用,因为plot()比tkplot()更灵活。实际上,可以在tkplot()中更改背景颜色,方法如下:
library(igraph)

g <- graph.ring(10)
id <- tkplot(g)
tkconfigure(igraph:::.tkplot.get(id)$canvas, "bg"="lightyellow")

屏幕截图

在下一个版本的igraph中,将可以通过tkplot.canvas()查询画布,因此您无需使用内部的igraph:::.tkplot.get()命令。

不幸的是,画布的背景颜色是小部件的属性,因此当您将画布导出为EPS时,它将被忽略。解决这个问题的方法是绘制所需颜色的大矩形,并将其放置在画布下面的顶点和边缘之下。这肯定是可行的,但更容易的方法是通过tkplot.getcoords()查询坐标,然后使用plot()函数。


你是否写过或者知道一些类似这样的博客,可以引导人们完成这样的活动?我意识到 igraph 对我可能比我之前意识到的更有用。 - IRTFM
嗨,http://www.r-bloggers.com/ 上有一些与igraph相关的帖子,有些好,有些不太好。当然,大部分内容都在手册中,但内部函数并没有。 - Gabor Csardi

3
tkplot生成的对象背景没有颜色。它被设计为输出eps-postscript文件,这些文件基本上是透明的,并且设计用于覆盖在其他文件之上。将导出文件的输出打开到阅读器中,您将看不到背景中的任何颜色。当您在tkplot页面上运行示例,将其保存为eps文件并在Mac上使用Preview.app打开时,您将得到以下内容。(您应该能够使用Ghostscript或ImageMagick进行类似的显示。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接