我想想象一下我自己的R包中的函数是如何相互依赖的。为此,我使用了来自foodweb()包的mvbutils函数。
我可以在没有问题的情况下获得正确的函数依赖关系,但是图看起来有点混乱,直线相交,函数名没有垂直或水平对齐。
是否有一种方法可以类似于igraph包的工作方式来控制绘图的布局?
示例
dirPath <- "~/dev/stackoverflow/46910042"
setwd(dirPath)
## Download example Package
urlPackage <- "https://github.com/kbroman/qtlcharts/archive/master.zip"
download.file(urlPackage, destfile = "master.zip")
unzip("./master.zip", exdir = dirPath, overwrite = TRUE)
## Install or load mcbutils
if (!require(mvbutils)) install.packages("mvbutils")
thefiles = list.files(path = "./qtlcharts-master/R/", full.names = TRUE)
thefiles
## Now we load all the package files into memory, so we can have
## foodweb generate a map of the package functions.
sapply(thefiles, source)
## Generate plot
par(mar = rep(0.1, 4))
foodweb(border = TRUE, boxcolor = "pink", lwd = 1.5, cex = 0.8)地块输出:

发布于 2017-11-03 16:36:01
迈克尔,
一种选择是在食物网的窗帘后面看一看。mvbutils::foodweb函数返回(S3)类foodweb的对象。这包括三个组成部分:
因此,我们可以采取的一种方法是调用foodweb,但告诉它不要创建一个绘图,而是返回一个foodweb对象。这样我们就可以操纵数据目录或通过graphics::plot()外部操作mvbutils::foodweb()函数提供的缺省值。
为什么?,好吧,要做你认为我感觉是有三种选择的事情:
mvbutils::foodweb()参数。graphics::par()和graphics::plot操作返回的foodweb结构的绘图大小和属性。很高兴知道你的喜好。不包括,我的意思是提供一个基本的例子:
绘图包示例
在使用graphics::plot的情况下,您需要看看如何操作graphics:par。par()允许您设置或查询图形参数。例如,如果要清理函数图,可以选择修改grahics::par() fin参数,以增加图形区域维度(宽度、高度)(以英寸为单位)。一个简单的例子,但我的感觉,它有助于地图和演示可供您使用的选项。
## Generate plot
if (!require(qtlcharts)) install.packages("qtlcharts")
## Here we specify `asNamespace` to get the package internals
fw <- foodweb( where = asNamespace( "qtlcharts"),
plotting = FALSE,
)
#Display foodweb structure
str(fw)
# Expand plot figure region dimensions...
par(fin = c(9.9,7))
# Plot fw strucuture
plot(fw,
border = TRUE,
expand.xbox = 1,
boxcolor = "pink", lwd = 1.5, cex = 0.8)图输出示例
请注意,函数名没有分隔开。注意,我在这里剪下了图的顶部和底部的白色。在这种情况下,您可以使用par约束,如保证金,以获得您想要的情节。

修剪你的阴谋
mvbutils::foodweb约束中的另一个选项是使用prune和rprune选项来简化您的情节。这些都是超级强大和有用的,特别是正则表达式版本。
if (!require(qtlcharts)) install.packages("qtlcharts")
fw <- foodweb( where = asNamespace( "qtlcharts"),
plotting = FALSE)
str(fw)
par(fin = c(9.9,7))
plot(fw,
border = TRUE,
expand.xbox = 1,
boxcolor = "pink", lwd = 1.5, cex = 0.8)
fw <- foodweb( where = asNamespace( "qtlcharts"),
rprune = "convert_", ## search on `convert_` to negate use `~convert_`
plotting = FALSE)
str(fw)
par(fin = c(9.9,7))
plot(fw,
border = TRUE,
expand.xbox = 1,
boxcolor = "pink", lwd = 1.5, cex = 0.8)

希望上面的信息能为你指明正确的方向。在T。
发布于 2017-11-03 11:19:22
由于有大量的数据,连接等,情节被压缩,以适应屏幕,因此它变得凌乱。
我的建议是把它保存在一个PDF或PNG的足够大的宽度和高度,然后你可以放大。这会帮你节省很多时间。例如:
## Generate plot
pdf( "mygraph.pdf", width = 50, height = 80 )
par(mar = rep(0.1, 4))
foodweb(border = TRUE, boxcolor = "pink", lwd = 1.5, cex = 0.8)
dev.off()此外,您还可以使用foodweb的绘图选项。
希望能帮上忙。
https://stackoverflow.com/questions/46910042
复制相似问题