2014-06-18 66 views
1

我目前正在分析數據,檢查基於延時攝影的BtRw對航測的行爲響應。以下是我已導入到R的數據幀的一個簡短示例。如何在R中以1分鐘爲間隔創建圓形時間圖

事件被分類爲照片中捕獲的BtRw的數量。我真的很希望能夠創建一個循環時間圖,以1分鐘的間隔表示數據。我嘗試了以下代碼的替代版本,並取得了有限的成功。我的數據是在上午6點到下午2點之間捕獲的。

任何有關我做錯什麼的建議將不勝感激。

ggplot(eventdata, aes(x=eventhour, fill = Events)) + 
geom_histogram(breaks = seq(6, 14), width = 2, colour = "grey") + 
coord_polar(start = 6) + theme_minimal() + scale_fill_brewer() + ylab ("Count") + 
ggtitle("Events by Time of Day") + 
scale_x_continuous("", limits = c(6,14), breaks = seq(6, 14), labels = seq(6, 14)) 

     Time  Events 

131  8:09:00  2 
132  8:10:00  2 
133  8:11:00  2 
134  8:12:00  4 
135  8:13:00  4 
136  8:14:00  5 
137  8:15:00  5 
138  8:16:00  5 
139  8:17:00  5 
140  8:18:00  5 
141  8:19:00  5 
142  8:20:00  6 
143  8:21:00  6 
144  8:22:00  6 
145  8:23:00  5 
146  8:24:00  5 
147  8:25:00  5 
148  8:26:00  6 
149  8:27:00  6 
150  8:28:00  5 
151  8:29:00  5 
152  8:30:00  5 
153  8:31:00  5 
154  8:32:00  5 
155  8:33:00  5 
156  8:34:00  6 
157  8:35:00  6 
158  8:36:00  6 
159  8:37:00  6 
160  8:38:00  5 
161  8:39:00  6 
162  8:40:00  6 
163  8:41:00  6 
164  8:42:00  6 
165  8:43:00  6 
166  8:44:00  5 
167  8:45:00  4 
168  8:46:00  4 
169  8:47:00  4 
170  8:48:00  4 
171  8:49:00  4 
172  8:50:00  4 
173  8:51:00  4 
174  8:52:00  4 
175  8:53:00  4 
176  8:54:00  4 
177  8:55:00  4 
178  8:56:00  4 
179  8:57:00  4 
180  8:58:00  4 
181  8:59:00  4 
182  9:00:00  4 
183  9:01:00  4 
184  9:02:00  4 
185  9:03:00  4 
186  9:04:00  4 
187  9:05:00  4 
188  9:06:00  4 
189  9:07:00  4 
190  9:08:00  3 
191  9:09:00  3 
192  9:10:00  3 
193  9:11:00  3 
+0

循環時間圖是什麼樣的?你能提供一個鏈接到你之後的情節類型的例子嗎? – MrFlick

+0

http://rstudio-pubs-static.s3.amazonaws.com/3369_998f8b2d788e4a0384ae565c4280aa47.html – user3750840

+0

其中之一就像在你鏈接的例子中一樣,你的數據框需要一個'eventhour'列。 –

回答

1

所以我不認爲stat_histogram是一個不錯的選擇,因爲你已經在這裏「崩潰」的數據。因此,我決定做的是將時間轉換成一個數字(6 * 60 14 * 60),然後繪製與geom_bar

eventdata$minute <- sapply(strsplit(as.character(eventdata$Time), ":", fixed=T), 
    function(x) {as.numeric(x[1])*60+as.numeric(x[2])}) 

然後繪製與

ggplot(eventdata, aes(x=minute, y=Events, fill=as.factor(Events))) + 
    geom_bar(stat="identity", width=2) + 
    coord_polar(start = 6*60) + theme_minimal() + scale_color_brewer() + 
    ggtitle("Events by Time of Day") + ylab ("Count") + 
    scale_x_continuous("", limits = c(6,14)*60, breaks = seq(6, 13)*60, 
     labels = paste0(seq(6, 13),":00")) 

它仍然產生警告(即「position_stack需要不重疊的x間隔」),但據我所知,這似乎是不可避免的。在分辨率很高的情況下,很難在劇情中看到單個條形圖。以下是使用測試數據創建的圖。

enter image description here

+0

謝謝您的幫助!這正是我所期待的。非常感謝。 – user3750840

+0

如果這樣做你想要什麼,不要忘了點擊這個答案旁邊的複選標記來接受它並關閉問題。乾杯。 – MrFlick

相關問題