如何用R中的新行,斜体和变量名创建格子图标题

时间:2013-05-04 02:05:39

标签: r plot lattice

我一直在尝试将标题(通过main)添加到使用spplot创建的地图中,该地图由两行文本组成,但第二行是斜体。每行中的文本都是从变量名称中提取的。我尝试过使用bquote和表达,但没有运气。

我的出发点的一个基本示例如下,尽管在我的actaul用法中,a和b的文本是作为循环的一部分从向量迭代绘制的。关于如何保持两条线按照示例分割的任何建议,但是第二行文本斜体化将非常感激。我希望这个例子很清楚。提前谢谢。

require(sp)
data(meuse)
coordinates(meuse)<-~x+y

a<-"line 1"
b<-"line 2"
title<-paste(a,'\n',b,sep="")

spplot(meuse,c("ffreq"),col.regions="black",main=title)

1 个答案:

答案 0 :(得分:1)

spplot(meuse, c("ffreq"), col.regions="black",
               main= expression( atop(line~1, italic(line~2) ) )  )

如果你真的想要隔离a =“第1行”和b =“第2行”变量并“传入它们”,你可以使用这种形式:

spplot(meuse, c("ffreq"), col.regions="black",
             main= as.expression( bquote( atop(.(a), italic(.(b) ) ) ) ) )

我会注意到bquote()返回的值实际上不是表达式而是“语言”对象。格子的作者Deepayan Sarkar认为,这些不应被视为格子框架中的表达。在没有as.expression包装器的情况下使用bquote在基本图形和ggplot2中通常是可以接受的,但在格子调用中会失败。我最初(未成功)尝试过:

 spplot(meuse, c("ffreq"), col.regions="black",
             main=  bquote( atop(.(a), italic(.(b) ) ) ) )