再顺序x轴左右的时间从上午12点进到下午11点中的R
问题描述:
Hour CrimeFreq
1 1:00:00 AM 547
2 1:00:00 PM 543
3 10:00:00 AM 472
4 10:00:00 PM 735
5 11:00:00 AM 464
6 11:00:00 PM 667
7 12:00:00 AM 741
8 12:00:00 PM 629
9 2:00:00 AM 601
10 2:00:00 PM 577
11 3:00:00 AM 383
12 3:00:00 PM 570
13 4:00:00 AM 215
14 4:00:00 PM 611
15 5:00:00 AM 159
16 5:00:00 PM 703
17 6:00:00 AM 189
18 6:00:00 PM 671
19 7:00:00 AM 235
20 7:00:00 PM 646
21 8:00:00 AM 349
22 8:00:00 PM 589
23 9:00:00 AM 422
24 9:00:00 PM 684
我有上述(聚集从较大的数据集)我使用ggplot再顺序x轴左右的时间从上午12点进到下午11点中的R
ggplot(Time.Assault2014, aes(x=Hour, y= CrimeFreq, group=1)) + geom_line()
所绘制的线图中的数据图出来是这样的:
有没有一种方法,我可以订购x轴从12AM去11PM?我想展示CrimeFreq如何在一天中改变。
基本上我希望它看起来像这样(从画面)
答
library(dplyr)
df2 <- df %>%
mutate(time = strptime(Hour, format="%I:%M:%S %p") %>% format(., "%H"))
ggplot(df2, aes(time, CrimeFreq, group=1)) +
geom_line()
编辑: 添加更强大的时间编码和scale_x_datetime
复制画面图。
df2 <- df %>%
mutate(time = as.POSIXct(strptime(Hour, format="%I:%M:%S %p", tz="Singapore")))
ggplot(df2, aes(time, CrimeFreq, group=1)) + geom_line() +
scale_x_datetime(date_breaks = "2 hour",
labels = function(x) format(x, format = "%I%p", tz="Singapore"))
谢谢!我找到了重新命名X轴刻度标记的方法,因此它看起来像是在tableau中的一个,谢谢你! – NVerde
@NVerde编辑了上面的代码,在ggplot中稍微更健壮的时间编码。时区可能是一个婊子,但。 –