2015-07-02 4 views
1

Я выделил конкретные действия (питание, отдых и сон) из набора данных на моем участке. Теперь я хочу соединить эти выделенные точки последовательно над моими полярными координатами.Как подключить определенные атрибуты по полярным координатам в R?

Вот мой набор данных:

Activity Latitude Longitude 
Feeding 21.09542 71.06014 
Resting 21.09564 71.06064 
Sleeping 21.09619 71.06128 
Walking 21.09636 71.06242 
Walking 21.09667 71.06564 
Resting 21.09483 71.06619 

Можете ли вы помочь мне в этом?

+3

Я действительно не понимаю, что вы хотите сделать. Не могли бы вы переформулировать свой вопрос? Пожалуйста, не забудьте предоставить воспроизводимый набор данных 'set.seed (1); mydf = data.frame (Activity = sample (c (« Ходьба »,« Кормление »,« Отдых »,« Спящий »), 100, T) Latitude = rnorm (100,21,0.5), Longitude = rnorm (100,71,0.5)) ', а также ваш код и пакеты, которые вы используете. Это облегчает вам помощь :) – goclem

ответ

1

ОК Я начинаю с нуля: мой первоначальный ответ был слишком громоздким и негибким.

Просто добавьте следующее, чтобы получить пути для каждой деятельности без фильтрации.

+ geom_path(aes(colour=ACTIVITY,x=Latitude,y=Longitude)) 

enter image description here

Если вы хотите построить только выбранные деятельности:

+ geom_path(data=Data[Data$ACTIVITY %in% c("Sleeping","Resting"),],aes(colour=ACTIVITY,x=Latitude,y=Longitude)) 

enter image description here

Выбранные мероприятия должны быть перечислены в c(...) векторе с каждым именем, указанным.

UPDATE: OP пояснил, что он хочет соединить любую стационарную точку, это достигается с помощью следующей команды:

+ geom_path(data=Data[Data$ACTIVITY!="Walking",],colour="red",aes(x=Latitude,y=Longitude)) 

Обратите внимание, что цвет = АКТИВНОСТЬ удаляются от эстетики и мы рассмотрим все стационарные точки (! = «Ходьба»), чтобы нарисовать путь.

Код сочетающие обе ответы:

set.seed(1) 
mydf=data.frame(Activity=sample(c("Walking","Walking","Walking","Walking","Walking","Resting","Feeding","Sleeping"),20,T),Latitude=rnorm(20,21,0.5),Longitude=rnorm(20,71,0.5)) 
mydf$Order=1:nrow(mydf) 

# Plot 
library(ggplot2) 
ggplot(data=mydf)+ 
geom_point(aes(x=Latitude,y=Longitude,colour=Activity),size=5)+ 
geom_path(aes(x=Latitude,y=Longitude),size=1.2)+ 
geom_text(aes(x=Latitude,y=Longitude,label=Order))+ 
geom_path(data=mydf[mydf$Activity!="Walking",],colour="red",aes(x=Latitude,y=Longitude)) + 
coord_polar(theta="y") 

enter image description here

+0

Вы видите ответ Клемента? После того, что сделал Климент, я хочу построить (подключить) места отдыха, кормления и спать по тому же сюжету, что и ответ, полученный Клементом. – ayush

+0

Я добавил еще одну попытку, но, глядя на вашу фигуру, кажется, вы хотите, чтобы они были подключены без полярных координат? – CMichael

+0

Да, спасибо. – ayush

2
# Example dataframe  
set.seed(1) 
mydf=data.frame(Activity=sample(c("Walking","Feeding","Resting","Sleeping"),20,T),Latitude=rnorm(20,21,0.5),Longitude=rnorm(20,71,0.5)) 
mydf$Order=1:nrow(mydf) 

Если вы хотите соединить точки в порядке, независимо от активности, выполните следующие действия (для наглядности, я добавил переменную mydf $ Заказать ярлык очков).

# Plot 
library(ggplot2) 
ggplot(data=mydf)+ 
    geom_point(aes(x=Latitude,y=Longitude,colour=Activity))+ 
    geom_path(aes(x=Latitude,y=Longitude))+ 
    geom_text(aes(x=Latitude,y=Longitude,label=Order))+ 
    coord_polar(theta="y") 

enter image description here

Если вы хотите подключить очки в соответствии с деятельностью, считают ответ CMichael в.

+1

хороший пример данных генератор! – CMichael

+0

Не совсем корректно. Что я сделал: 1. У меня есть ваше решение. (т. е. у меня график такой же, как на первом этапе) 2.Теперь я хочу построить (подключить) места отдыха, кормления и спать по тому же сюжету, что и первый шаг. Можете ли вы мне помочь в этой 2-й части – ayush

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

  • Нет связанных вопросов^_^