2015-06-29 10 views
2

Я построил полярные координаты для своих данных, используя ggplot2.3D полярный график в R

мой набор данных в этом формате:

Time Lat Long Act 
18:00 21.05 70.00 feed 
18:45 21.00 75.00 walk 
19:00 21.09 77.00 walk 
19:05 24.98 77.09 rest 

Код:

library(ggplot2) 
plot.new() 

ggplot(aes(x = Lat, y = Long, colour = Act), data = file) + 
geom_point() 
ggplot(aes(x= Lat, y = Long , colour = Act), data = file) + 
geom_point() + 
coord_polar(theta = "y") 

Это полярная координата сюжет, который я получаю: here

Этот участок, имеющий широты и долготы , Теперь я хотел бы добавить еще одно измерение «время». Как я могу это сделать ?. Как я могу сделать этот 2D-полярный график в 3D-полярном сюжете?

+1

Вы можете использовать форму, размер или даже анимацию (посмотрите на пакет 'animation'). Как правило, вы должны предоставить воспроизводимый пример: http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – lukeA

ответ

4

Вы можете попытаться масштабировать размер точек со значением переменной «время». К сожалению, ваш пример не воспроизводим, но что-то вдоль этих линий может работать:

ggplot(aes(x= Latitude, y = Longitude , colour = ACTIVITY, size=time), data = Data) + geom_point(shape=21) + coord_polar(theta = "y") + scale_size_area(max_size=10) 

Ниже вы можете увидеть воспроизводимый пример, который основан на данных, которые используются в «R Graphics Cookbook» Уинстон Чанг (O «Рейли 2013».

В этом случае размер точки представляет собой температуру, цвет относится к категории скорости ветра, направление ветра отображается в полярных координатах, а радиус - среднее значение ветра.

library(gcookbook) 
library(ggplot2) 
p <- ggplot(wind, aes(x=WindDir, y=WindAvg, size=Temp, fill=SpeedCat)) + 
    coord_polar() + geom_point(shape=21)+scale_size_area(max_size=10) + 
    scale_x_continuous(limits=c(0,360),breaks=seq(0,360,by=45)) 

Это выход: enter image description here

Надеется, что это помогает.

+0

Извините, но меня интересовал ваш ответ и не могу заставить его работать. Вы поможете OP и другим, продемонстрировав свой ответ и включив в него вывод. В частности, ваши предположения для «времени» кажутся важными для правильной работы, чтобы определить размер (я получил «Ошибка: дискретное значение, предоставленное непрерывному масштабу», когда это было классом 'as.Date'). –

+0

@Marcinthebox Мои извинения, если мой тон был недружелюбным. Теперь я понимаю ваш комментарий намного лучше. Я попытаюсь посмотреть, могу ли я предоставить аналогичный сюжет с одним из общих наборов данных. Предположительно, самый простой способ дать полезный ответ будет, если OP сможет опубликовать вывод 'dput (Data)'. – RHertel

+0

@ lukeA Я только что обновил свой вопрос. Можете ли вы просмотреть это. –