【发布时间】:2017-07-29 08:17:57
【问题描述】:
这听起来像是重复的,但我的问题不仅仅是legend() 中的一些大小和位置调整。
事实上,我并没有告诉 R 做一个传奇,所以我不知道在哪里调整。在这一点上,仅仅能够删除图例将是一个好的开始......
我正在使用包 FME 进行建模,目前正在复制 this example 但用我自己的替换参数和名称。我目前在使用局部敏感度图时遇到问题,它们看起来像这样:
但我从未指定图例。这是我的代码:
# model with differential equations - no instructions on plotting whatsoever
spi.phy.tom <- function(pars, state, times){}
# pars used in model (not really relevant)
test.pars <- c(rIng = 0.5, rGrow = 0.26, rMort = 0.002,
assEff = 0.05, hSat = 0.5, K = 1000)
# sensFun calc sensitivity of variables to parameters
SnsSpint <- sensFun(func = spi.phy.tom, parms = test.pars, sensvar = "spint", varscale = 1)
SnsPhyto <- sensFun(func = spi.phy.tom, parms = test.pars, sensvar = "phytoseiulus", varscale = 1)
# output of sensFun are data frames
head(SnsSpint)
x var rIng rGrow rMort assEff hSat K
1 0 spint 0 0.00000 0 0 0 0.000000
2 1 spint 0 28.62302 0 0 0 3.631926
3 2 spint 0 68.98759 0 0 0 10.053424
4 3 spint 0 122.48621 0 0 0 20.614181
5 4 spint 0 189.24599 0 0 0 36.986043
6 5 spint 0 267.46231 0 0 0 61.017033
# plot sensFun output
plot(SnsSpint, main = "Spint")
plot(SnsPhyto, main = "Phytoseiulus")
如你所见,我没有谈论传说,但我仍然了解它们。我一直了解到您需要专门添加legend()(带有所需的参数)才能获得一个。所以我不知道如何删除或调整这些。
如果您想查看函数的内部,它与 FME 包中 pdf 的 p.2 上的完全相同(参见上面的链接)。因为太多不相关的代码,这里没有包含它。
【问题讨论】:
-
plot()是一个通用函数,它根据传递给它的对象的class()执行不同的操作。看起来 FME 包创建了一个对象类并为其添加了特殊的打印功能。看看class(SnsPhyto)返回什么,看看methods(plot)中是否有对应的函数。看起来他们使用lattice图形而不是基本图形来绘制他们的绘图,因此绘制图例的方式与传统的基本图形函数不同。该自定义绘图功能可能有一个帮助页面。 -
谢谢,这对我来说是一些新信息。当然让我更好地理解事物的运作方式。我会查看那些帮助页面!