1

当尝试使用 调整字体大小时directlabelslist(cex=2)该函数不希望地为每个点添加标签。

library(lattice)
library(directlabels)
foo <- data.frame(x=1:10, y=c(1:5, (1:5)^2), z=c(1:10))
direct.label( xyplot( y + z ~ x, foo, type=c('l','g') ),
              list(cex=2) )

我更喜欢普通调用附带的默认标签放置(每组一个标签):

direct.label( xyplot( y + z ~ x, foo, type=c('l','g') ) )

指定first.points如下所示的位置方法,为每组提供一个所需的标签,但这与我所追求的默认标签放置方法不同。

direct.label( xyplot( y + z ~ x, foo, type=c('l','g') ),
              list("first.points", cex=2) )

有谁知道哪个位置方法重现了默认的自动放置方法?还是有另一种方法可以在不指定位置方法的情况下更改标签字体大小?

4

1 回答 1

2

在这种情况下使用的方法是"lines2"

direct.label(xyplot( y + z ~ x, foo, type=c('l','g') ),
             list("lines2", list(cex=2)) )

在此处输入图像描述

仅供参考,我快速浏览了一下就知道了getAnywhere("direct.label.trellis"),这指向了我panel.superpose.dl()。了解在行阅读中选择了什么方法

if (is.null(method)) 
    method <- default.picker("trellis")

我做到debug(panel.superpose.dl)了,在您的第二个代码块中运行代码,并逐步使用调试器,直到我可以检查哪个方法被default.picker().

于 2015-04-03T22:25:53.493 回答