2016-01-20 2 views
0

Я использую пакет sp в R. Я рисую две переменные в двух пространственных объектах, используя функцию spplot. Я хочу, чтобы легенда была одинаковой на обоих сюжетах, чтобы я мог их сравнить. Например, используя следующий код, я хочу, чтобы обе графики имели одинаковую легенду от 5 (с красным цветом) до 40 (с синим цветом). Это должно сравнить эти два графика. Вот код и сюжет.Настройка легенды на участок Пространственный объект в R (пакет sp)

library(sp) 
data(meuse) 
data(meuse.grid) 
coordinates(meuse) <- c("x", "y") 
coordinates(meuse.grid) <- c("x", "y") 
gridded(meuse.grid) <- TRUE 
col=colorRampPalette(c("red","blue"))(30) 
[email protected]$var.1=sample(11:40,length([email protected][,1]),replace=TRUE) 
[email protected]$var.2=sample(5:30,length([email protected][,1]),replace=TRUE) 

p1=spplot(meuse.grid, "var.1", col.regions=col) 
p2=spplot(meuse.grid, "var.2", col.regions=col) 
print(p1, position = c(0,.5,.5,1),more=T) 
print(p2, position = c(.5,.5,1,1),more=F) 

enter image description here

+0

Действительно, это немного глупо перепечатать ту же шкалу; было бы более целесообразно что-то делать по строкам 'ggplot2 :: facet_wrap' /' facet_grid'. – alistaire

+0

Нужно иногда ... Послушайте мое слово ... сравните мою репутацию с самим собой на stats.stackexchange :) – Stat

+0

Почему? После того, как у вас есть палитра то же самое, вы печатаете одно и то же дважды в одном сравнительном сюжете. Это скорее вопрос конкретизации дизайна, чем статистика. – alistaire

ответ

0

Попробуйте что-то вроде этого:

p1=spplot(meuse.grid, "var.1", col.regions=col, colorkey=list(at=seq(5, 30, 5), labels=as.character(seq(5, 30, 5)))) 
p2=spplot(meuse.grid, "var.2", col.regions=col, colorkey=list(at=seq(5, 30, 5), labels=as.character(seq(5, 30, 5)))) 
print(p1, position = c(0,.5,.5,1),more=T) 
print(p2, position = c(.5,.5,1,1),more=F) 

enter image description here

Смежные вопросы