【问题标题】:Add text to lattice plot?在格子图中添加文本?
【发布时间】:2012-09-03 12:41:36
【问题描述】:

谁能告诉我如何在格子图中添加文本行。

我的代码是:

xyplot(Neff~Eeff,data=phuong,panel=mypanel,
       col="black",
       pch=18,xlab="Energy efficiency (%)",
       ylab = "Nitrogen efficiency (%)", main="(a)")

这里pane=mypanel是加一个abline。 我想在他们的图中添加 Eeff 和 Neff 之间的线性回归方程。

谢谢!

【问题讨论】:

  • 参见?panel.text,您可以将其添加到mypanel 函数中。
  • 它对我不起作用。这是 mypanel 代码: mypanel
  • 请发reproducible example,以便更容易为您提供帮助。
  • 非常感谢您的 cmets Benbarnes。我的问题其实是这样的。正如您在上面的代码中看到的那样,我有两个数据集合:Eeff 和 Neff 1。我使用 xyplot 函数 2 制作了散点图。我使用简单的线性回归函数:lm(Eeff~Neff, data=phuong) 来查找回归方程:现在是 Eff=19.7 + 0.36 Neff,我想要在散点图的左上角添加“Eff=19.7 + 0.36 Neff”。请你帮助我好吗?非常感谢!
  • @hn.phuong 这仍然无法重现。本提供了一个链接。看看他的链接。基本思想是,在您的原始帖子中,我们应该能够准确地获取您使用的代码并重现您的错误。您将希望数据集尽可能小(可能 5-10 行)并且仍然能够重现结果。您还可以使用 R 的许多内置数据集之一作为示例。

标签: r lattice


【解决方案1】:

因此,使用可重现的数据:

set.seed(1)

phuong <- data.frame(Eeff = rnorm(100,31))
phuong$Neff <- rnorm(100,19.7 + .36*phuong$Eeff)

# Create the lm object ahead of time
lm1 <- lm(Neff ~ Eeff, data = phuong)

# Create the character string that you want to print
tp <- sprintf("%s=%.1f + %.2f %s", all.vars(formula(lm1))[1],
  coef(lm1)[1], coef(lm1)[2], all.vars(formula(lm1))[2])

# Change the mypanel function to use the lm1 object
mypanel<-function(x,y,...){
  panel.xyplot(x, y, ...)
  panel.abline(lm1)
  panel.text(30,33,labels=tp)
}

library(lattice)

# and off we go.

xyplot(Neff~Eeff,data=phuong,panel=mypanel,
       col="black",
       pch=18,xlab="Energy efficiency (%)",
       ylab = "Nitrogen efficiency (%)", main="(a)")

【讨论】:

  • 您好 BenBarnes,非常感谢您的帮助。我还有一个与此相关的小问题。本例是把这两个变量的线性方程相加。如果我想添加一个随机单词,我该怎么办,例如谢谢!
  • 嗨@hn.phuong,要添加其他文本,如果您已经创建了tp 对象,请修改它,例如使用paste(tp, "Thanks!")。或者,如果您只想添加“谢谢!”没有回归方程,然后是tp &lt;- "Thanks!"。然后使用xyplot 再次创建散点图。
  • @hn.phuong,如果此答案解决了您的问题,请考虑将其标记为已接受的答案(答案开头附近的复选标记)。
【解决方案2】:
library(latticeExtra)

set.seed(1)

phuong <- data.frame(Eeff = rnorm(100,31))
phuong$Neff <- rnorm(100,19.7 + .36*phuong$Eeff)

xyplot(Neff ~ Eeff, data= phuong) + 
  layer(panel.ablineq(lm(Neff ~ Eeff, data= phuong), r.sq= TRUE, rot = TRUE))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    相关资源
    最近更新 更多