【问题标题】:Add labels on lattice xyplot在格子 xyplot 上添加标签
【发布时间】:2011-07-07 06:50:51
【问题描述】:

我用格子创建了一个 xyplot

library(lattice)
X1=c(5, -2, 1, -3)
X2=X1^2
names=paste("dot", 1:4, sep="")
xyplot(X2~X1, data=data.frame(X1, X2), pch=20, cex=1:4)

现在我想为每个点添加一个标签(文本)。信息在

names=paste("dot", 1:4, sep="")

我尝试了以下没有成功

panel.text(x=X2, y=X1, names)

或者,使用直接标签

library(directlabels)
p=xyplot(X2~X1,data=data.frame(X1, X2), pch=20, group=names, cex=1:4)
direct.label(p,smart.grid,FALSE)

但我不太喜欢它,因为我不得不使用group=names 分组,基本上每个点都在不同的组中?还有其他方法吗?

【问题讨论】:

    标签: r label lattice


    【解决方案1】:

    您可以尝试定义一个新的面板功能:

    xyplot(X2~X1, data=data.frame(X1, X2), pch=20, cex=1:4,
          panel=function(x, y, ...) {
                   panel.xyplot(x, y, ...);
                   ltext(x=x, y=y, labels=names, pos=1, offset=1, cex=0.8)
                })
    

    【讨论】:

    • 我真的应该阅读关于这些面板的好教程。我不明白为什么我们必须调用 2 个函数,xyplot 和 panel.xyplot
    • 如果我想为 pos 提供一个向量怎么办? (每个点的位置在 1 和 3 之间有不同的数字)
    • @RockScience: xyplot 绘制整个情节; panel 参数中的函数告诉xyplot 在每个面板中绘制什么。在这种情况下,它执行xyplot 通常所做的事情(通过调用panel.xyplot,然后绘制一些额外的文本(通过调用ltext,尽管panel.text 会使代码更清晰)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-23
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多