Стандартный способ добавления текста - использовать функцию ltext
решетки, но приведенные там координаты всегда абсолютны.По сути, вы не можете действительно изменить масштаб рисунка после добавления текста.Например:
data(meuse.grid)
gridded(meuse.grid)=~x+y
meuse.grid$g = factor(sample(letters[1:5], 3103, replace=TRUE),levels=letters[1:10])
meuse.grid$f = factor(sample(letters[6:10], 3103, replace=TRUE),levels=letters[1:10])
spplot(meuse.grid, c("f","g"))
ltext(100,200,"Horror")
Производит эти цифры (до и после масштабирования)
Вы можете использовать пользовательскую функцию панели, используя координаты вкаждая панель:
myPanel <- function(x,y,xx,yy,labels,...){
panel.xyplot(x,y,...)
ltext(xx,yy,labels)
}
xyplot(1:10 ~ 1:10,data=quakes,panel=myPanel,
xx=(1:5),yy=(1:5)+0.5,labels=letters[1:5])
(запустите ее для себя, чтобы посмотреть, как она выглядит)
Этот прием можно использовать и в функции spplot, хотя вам действительно нужно проверить любую функцию построения графикаты используешь.В файлах справки по spplot вы найдете возможные варианты (полигонсплот, гридплот и точечный график), поэтому вам нужно проверить, выполняет ли какой-либо из них то, что вам нужно.Продолжая приведенную выше сетку, она становится такой:
myPanel <- function(x,y,z,subscripts,xx,yy,labels,...){
panel.gridplot(x,y,z,subscripts,...)
ltext(xx,yy,labels)
}
# I just chose some coordinates
spplot(meuse.grid, c("f","g"),panel=myPanel,xx=180000,yy=331000,label="Hooray")
, которая дает пересчитываемый результат, где текст добавляется на каждой панели: