我的数据看上去像是
总目(数据1,10)
id time type value1 value2 value3
1 1612 7/1/2014 10:15 activity none
2 76308 7/1/2014 10:17 battery discharging
3 1613 7/1/2014 10:17 activity none
4 1614 7/1/2014 10:17 activity none
5 1615 7/1/2014 10:17 activity none
6 1616 7/1/2014 10:17 activity none
7 1617 7/1/2014 10:17 activity none
8 325200 7/1/2014 10:17 wifi linksys 00:1a:70:5b:8f:21 -86
9 1618 7/1/2014 10:19 activity none
10 1619 7/1/2014 10:19 activity none 完整的数据可以以此链接格式下载,数据是csv,大小约为1.6MB。数据有5个重要列(时间、类型、value1、value2、value3)。类型包含:活动是指用户活动(无,高,低),sms,wifi等。
我想把我的数据绘制成这样:

X轴是间隔1小时的时间,Y轴是间隔1天的日期,然后对于每种类型,都有不同的颜色,如图中所示。
当许多价值在同一时间,所以情节看上去更厚,也为活动类型我想要不同的颜色(无,高,低)。
发布于 2014-12-06 14:49:32
不确定您将如何使用这些数据来绘制图,在这里,我假设您在不同的日子中根据时间值绘制类型。看看这是不是你要找的东西:
# transforming your data
library(data.table); library(tidyr); library(ggplot2)
test = fread("data_test.csv") # the data file is in working directory
test = separate(test, time, c("days","time"), sep=" ")
test$days = as.POSIXct(strptime(test$days, "%m/%d/%Y"))
test$time = as.POSIXct(strptime(test$time, "%H:%M"))
# to plot
ggplot(test, aes(x=time, y=type, colour=type, shape=type)) +
theme_bw() +
geom_point() +
facet_grid(days ~.) +
scale_x_datetime(breaks=date_breaks("1 hour"), labels = date_format("%H:%M"))

发布于 2014-12-06 09:58:13
我可能给您的第一个指示是准备具有正确间隔的变量,并使用ggplot2 (也可以是格)。
使用ggplot2,您必须编写如下内容:
ggplot(aes(x = time_1h, y = value, color = type, shape = type), data = yourdata) +
geom_point() + facet_wrap(~ date_1day, ncol = 1)据我所知,对于每个日期,你想要在y轴上画一个图,就是在那个特定的时间里是否存在这种模式,你想要在不同的高度上画出它,这样点就不重合了。为此,您可以准备数据,例如,如果存在wifi,则给出1,如果存在调用,则给出2.这可能是个解决办法。等待其他可能的答案。
https://stackoverflow.com/questions/27329655
复制相似问题