我正在使用goodfit
包中的vcd
来制作合身图。
我想添加一个图例,说明条形图是实际的数字,而点(由线条连接)是合适的,例如使用泊松和ML。
legend
不起作用。如何在这个情节中轻松添加图例?
谢谢!
答案 0 :(得分:3)
goodfit
个对象的绘图功能正在使用grid
图形系统(请参阅?rootogram
和getAnywhere(rootogram.default)
)。
您有两种选择:
grid.legend
函数(来自包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()
答案 1 :(得分:1)
修改@ rcs的答案,使用grid_legend
(在vcd
包中加上goodfit
),用于用户(grid.legend
是一个未记录的内部函数),并展示一个专门针对这个情节的传奇。最好在fill=c(NA,"gray")
基础图形中使用legend
,但在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"))
答案 2 :(得分:-1)
没有具体的例子很难说(AFAIK不是goodfit
的限制),但我会用legend
检查一些事情:
"topright"
放置带有"bottomleft"
,x
等的图例。par("usr")
查询x和y轴限制。如果绘图是对数刻度,并且您希望将图例放在y的最大值,则必须使用10^par("usr")[4]
,依此类推。xpd=NA
,看看您是否将图例放在绘图区域之外,看看是否需要设置xjust
或yjust
。