plot() сдвигает растр вправо

Вопросы по статистическому пакету R. Не обязательно гео.
Ответить
Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

plot() сдвигает растр вправо

Сообщение rhot » 17 авг 2014, 22:06

Пытаюсь отрисовать одновременно 4 растра с разной цветовой палитрой. Функция image() работает отлично, но не умеет показывать условные обозначения. А вот plot() умеет, но 4-ый растр сдвигает почему-то вправо. См. приложение.

Код: Выделить всё

par(mfrow=c(2,1))
plot(r.lc.aspen,col=pal.a, legend=TRUE)
plot(r.lc.birch,col=pal.b,add=TRUE,legend=FALSE)
plot(r.lc.spruce,col=pal.s,add=TRUE, legend=FALSE)
plot(r.lc.pine,col=pal.p,add=TRUE, legend=FALSE)
title("plot()")
image(out[[1]], col=pal.s)
image(out[[2]], col=pal.p, add=TRUE)
image(out[[3]], col=pal.b, add=TRUE)
image(out[[4]], col=pal.a, add=TRUE)
title("image()")
Является ли это ествественным ограничением функции plot? Если использовать image(), есть ли решение проще, чем создавать свою легенду отдельно?
Вложения
test.jpeg
test.jpeg (121.54 КБ) 6126 просмотров
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

bolotoved
Гуру
Сообщения: 920
Зарегистрирован: 30 дек 2008, 14:11
Репутация: 236
Откуда: Ханты-Мансийск
Контактная информация:

Re: plot() сдвигает растр вправо

Сообщение bolotoved » 18 авг 2014, 03:44

Ощущение, что у 4-го растра ругая проекция (зона UTM?), а plot при этом не может перепроецировать на лету.

gamm
Гуру
Сообщения: 4064
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1061
Ваше звание: программист
Откуда: Казань

Re: plot() сдвигает растр вправо

Сообщение gamm » 18 авг 2014, 05:37

не очень понятно, что у вас за данные, поскольку на самом деле plot() - это только общее имя, а вызывается что-то, соответствующее типу данных, как и, скорее всего, для image().

а чтобы выводить макеты со всеми чудесами, придуман sp::spplot(), у которого есть sp.layout, там можно любую композицию создать. Если пару часиков попотеть :D

P.S. Насколько я понял, нужно вывести цветовую легенду по отдельным значениям, так это делается из одного растра, зачем 4?

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: plot() сдвигает растр вправо

Сообщение rhot » 18 авг 2014, 09:05

bolotoved писал(а):Ощущение, что у 4-го растра ругая проекция (зона UTM?), а plot при этом не может перепроецировать на лету.
Проекции идентичны. Пробовал в другом порядке отрисовывать, то же самое выходит - последний растр слетает. :(
gamm писал(а):не очень понятно, что у вас за данные
У меня четыре растра, которые содержат возраст лесных насаждений (ель, сосна, берёза и осина). Для каждой породы - своя легенда (цветвой градиент).

Код: Выделить всё

> class(r.lc.aspen)
[1] "RasterLayer"
attr(,"package")
[1] "raster"
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

gamm
Гуру
Сообщения: 4064
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1061
Ваше звание: программист
Откуда: Казань

Re: plot() сдвигает растр вправо

Сообщение gamm » 18 авг 2014, 18:27

rhot писал(а):
gamm писал(а):не очень понятно, что у вас за данные
У меня четыре растра, которые содержат возраст лесных насаждений (ель, сосна, берёза и осина).
яснее не стало. Покажите вывод str() для одного из растров, а лучше для всех - сохраните в текстовый файл с помощью sink() и приложите.
Для каждой породы - своя легенда (цветвой градиент).
что мешает сделать из них один RGB растр, и его нарисовать? Или они устроены по разному?

Ответить

Вернуться в «R»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей