我一直在尝试将标题(通过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)
答案 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) ) ) ) )