如何更改图形图中的图例标题和位置

时间:2016-03-09 14:07:35

标签: r legend lattice trellis lsmeans

我正在使用 lsmeans 中的lsmip来绘制我的模型,

 library(lsmeans)

 PhWs1 <- lsmip(GausNugget1, Photoperiod:Ws ~ Month, 
                ylab = "Observed log(number of leaves)", xlab = "Month",
                main = "Interaction between Photoperiod and Water stress over the months (3 photoperiods)",
                par.settings = list(fontsize = list(text = 15, points = 10)))

但我无法在互联网上获得有关如何处理图例位置,大小,标题等的建议。 我使用trellis.par.get()查看参数,但找不到与我的问题相关的参数。从图中可以看出,图例应为“Photoperiod * Ws”,但Ws不可见。

enter image description here

1 个答案:

答案 0 :(得分:3)

我看到两个可能的补充方法来解决这个问题。第一个是创建一个完全自定义的图例,并将其传递给key xyplot的{​​{1}}参数(lsmip严重依据)。以下是?lsmip澄清我的观点的一个例子。

## default trellis point theme
trellis_points <- trellis.par.get("superpose.symbol")

## create customized key
key <- list(title = "Some legend title",                  # legend title
            cex.title = 1.2, 
            x = .7, y = .9,                               # legend position
            points = list(col = trellis_points$col[1:2],  # points
                          pch = trellis_points$pch[1:2],  
                          cex = 1.5),                     
            text = list(c("A", "B"), cex = .9))          # text

## create results and extract lattice plot
d <- lsmip(warp.lm, wool ~ tension, plotit = FALSE,
           main = "Some figure title", key = key)

p <- attr(d, "lattice")
p

lsmip

正如您所看到的,设置自定义图例,您可以修改图例的所有不同组件 - 包括标签,文本和符号大小,图例间距等。深入了解{{1 key中描述的参数,详细描述了各种修改选项。

现在,如果您有一个很长的图例标题并且您不想在绘图区域中包含图例,则还可以定义单独的视口,从而允许图例在右边距处占据更多空间。请注意使用?xyplotupdate中移除最初创建的图例,然后使用网格功能组合单个图形组件。

p

lsmip2