我正在使用vcd包中的goodfit来生成拟合优度图。
我想添加一个图例,说明条形是实际计数,点(由线连接)是使用例如泊松和ML的拟合。
legend不工作。如何轻松地将图例添加到此图中?
谢谢!
发布于 2011-08-26 17:47:13
goodfit对象的绘图函数使用grid图形系统(请参见?rootogram和getAnywhere(rootogram.default))。
您有两个选择:
grid.legend函数(来自package grid).gridBase软件包的网格图中的基本图形图例。下面是第一个选项的一个简单示例:
library("vcd")
dummy <- rnbinom(200, size=1.5, prob=0.8)
gf <- goodfit(dummy, type="nbinomial", method="MinChisq")
plot(gf)
pushViewport(viewport(x=unit(0.8, "npc"),
y=unit(0.8, "npc"),
width=stringWidth("Legend x"),
height=unit(6, "line"),
name="vp1"))
grid.legend(labels=c("Legend 1", "Legend 2"), pch=1:2)
popViewport()发布于 2011-08-28 20:51:27
修改@rcs的答案以使用grid_legend (在vcd包和goodfit中),这是为用户设计的(grid.legend是一个未公开的内部函数),并显示一个专门针对此图的图例。在基础图形中使用legend中的fill=c(NA,"gray")会很好,但它不是在grid_legend中实现的。
library("vcd")
dummy <- rnbinom(200, size=1.5, prob=0.8)
gf <- goodfit(dummy, type="nbinomial", method="MinChisq")
plot(gf)
grid_legend(x=unit(0.8, "npc"),
y=unit(0.8, "npc"),
labels=c("est NBinom (MinChiSq)","obs"),
title="",
pch=c(16,15),col=c("red","gray"))发布于 2011-08-26 17:33:59
如果没有具体的例子,很难说(AFAIK这不是goodfit的限制),但我会用legend检查一些事情
对于参数,您可以使用"topright"、"bottomleft"等来放置图例x.
par("usr")查询x和y轴的限制。如果地块为对数比例,并且您希望将图例放置在最大y值处,则必须使用yjust.,依此类推。
xpd=NA以查看是否将图例放置在绘图区域之外,并查看是否需要设置xjust或loghttps://stackoverflow.com/questions/7202163
复制相似问题